PDFNet
SDK - What's New?
April 11, 2008 – Version 4.0.3
- PDF Layers Support: A new high-level API for manipulating and
handling PDF documents with layers. PDF Layers, or Optional Content
Groups (OCGs) as they are more formally known as, refer to sections
of content in a PDF document that can be selectively viewed or
hidden by document authors or consumers. This capability is useful
in different application domains such as CAD drawings, layered
artwork, maps, multi-language documents, etc.
- The PDFLayers
sample is extended to illustrate how to use the PDFDraw class
in PDFNet to selectively render and export PDF layers. Similarly,
the PDFView
sample application is extended with a layer tab and the capability
to interactively toggle OCGs on and off.
- Other minor improvements and bug fixes.
New Types and Methods:
- class pdftron.PDF.OCG.Context
- class pdftron.PDF.OCG.Config
- class pdftron.PDF.OCG.Group
- class pdftron.PDF.OCG.OCMD
- PDF.PDFDoc.HasOC()
- PDF.PDFDoc.GetOCGs()
- PDF.PDFDoc.GetOCGConfig()
- PDF.PDFDraw.SetOCGContext()
- PDF.PDFRasterizer.SetOCGContext()
- PDF.PDFView.SetOCGContext()
- PDF.PDFView.GetOCGContext()
- PDF.Element.IsOCVisible()
- PDF.ElementReader.Begin(OCG.Context);
February 11, 2008 – Version 4.0
- PDFNet SDK in now available for Java. The Java API
is exactly the same as the API for .NET or C/C++ API.
PDFNet for Java is available as part of the same package distribution
as PDFNet SDK for C++ and is available on all supported platforms
(i.e.Windows, Linux, Mac, Solaris, and mobile platforms).
- Complete PDF transparency support. The built-in rasterizer
in PDFNet SDK now features full support for PDF transparency,
including support for transparency groups and all blend modes.
- Automatic removal of some of the anti-aliasing artifacts such
as thin-lines and gaps between adjacent image elements. Although
it is impossible to completely remove all anti-aliasing artifacts
in PDF graphics, PDFNet SDK will reduce the appearance of commonly
occurring artifacts. Also, the users can manually control the
rendering quality using PDFDraw.SetGamma() and PDFView.SetGamma().
- Fast and high-quality text extraction. Using PDFNet SDK users
can extract text from PDF pages in Unicode or XML. For more information,
please refer to the TextTextract
sample project as well as to the documentation
for pdftron.PDF.TextExtractor.
- High-level logical structure API which can be used to extract
the logical structure from ‘tagged’ PDF documents.
The API resides in a new namespace – pdftron.PDF.Struct.
To test drive this functionality, please take a look at the LogicalStructure
sample
project.
- Built-in tools for text selection/highlighting as well as for
text search in the PDFView class . Also, all PDFView sample
projects (for C#, Java, VB.NET) are extended with code showing
how to use new text selection modes, text search, image export,
etc.
- The SDF/Cos
API is refactored to simplify coding and thus reduce errors
during development. The updated API is the same in all programming
languages, which also simplifies porting code from one language
to another. Finally, the new SDF/Cos architecture allows PDFNet
SDK to deliver further performance improvements in upcoming PDFNet
v.4.x releases. For more information on how to upgrade to the
new API, please see the migration
guide for PDFNet v.4.
- PDFNet SDK for C/C++ is now available as compiler-independent
shared library on all supported platforms (i.e. Windows, Linux,
Mac, Solaris, and mobile platforms). For native code developers
this removes the possiblity of collisions arising between incompatible
C++ compilers and libraries.
- Automatic error recovery for PDF documents with minor corruptions
(such as broken cross reference tables, etc).
- The object size of the core DLL(s) is decreased, despite introduction
of many new features.
- New utility methods in the ElementBuilder class are introduced
to simplify drawing of ellipses, circles, and arcs.
- PDF Split and Merge operations (i.e. PDFDoc.ImportPages()) can
now optionally copy associated bookmarks and preserve document
internal and external links.
- Automatic stroke adjustment for thin lines. Improved rendering
speed for certain graphical elements.
- Users that require tight control of the location where temporary
files are created can now use PDFNet.SetTempPath() to specify
the location of the temporary folder.
- New sample project PDFViewSimple
(for C# and VB.Net only): a stripped-down version of the full
PDFView sample, which can be useful to developers learning how
to integrate a basic PDF viewer within their applications.
- The PDFView
sample is extended with the option to open TIFF, GIF, PNG, BMP
and other image formats besides PDF. There is also an option to
export PDF pages as raster images, code to execute document links,
etc.
- There a number of new methods controlling the way pages are
viewed using PDFNet SDK. For example, a user can selectively enable
or disable progressive rendering in the PDF viewer using PDFView.SetProgressiveRendering().
There are also new methods controlling horizontal and vertical
alignment of pages within the control, and functions to set the
default background and paper color.
- A new option in the PDF rasterizer to export dithered monochrome
TIFF or PNG output. To export 1 BPC, dithered TIFF (CCITT Fax
G4) output, specify extra ‘BPC’ or ‘Gray’
hint parameter. For some concrete sample code, please refer to
the PDFDraw sample
project.
New Types and Methods:
- class pdftron.SDF.ObjSet
- class pdftron.Struct.STree
- class pdftron.Struct.SElement
- class pdftron.Struct.RoleMap
- class pdftron.Struct.ContentItem
- class pdftron.Struct.ClassMap
- class pdftron.Struct.AttrObj
- class pdftron.PDF.TextExtract
- class pdftron.PDF.TextExtract.Word
- class pdftron.PDF.TextExtract.Line
- class pdftron.PDF.TextExtract.Style
- class pdftron.PDF.PDFView.Selection
- PDFNet.Initialize(key)
- PDFNet.SetTempPath()
- PDF.PDFDoc.FieldCreate(String name, Type, String value)
- PDF.FDFDoc.FieldCreate(String name, Type, String value)
- PDF.FDFDoc.GetFieldIterator()
- PDF.FDFDoc.GetField()
- PDF.PDFDoc.GetPageIterator()
- PDF.PDFDoc.GetPage(num)
- PDF.PDFDoc.GetFieldIterator()
- PDF.PDFDoc.GetField(name)
- PDF.PDFDoc.RemoveSecurity()
- PDF.Element.GetParentStructElement()
- PDF.Element.GetStructMCID()
- PDF.ElementBuilder.CreateEllipse()
- PDF.ElementBuilder.ArcTo()
- PDF.Page.Scale()
- PDF.Destination.IsValid()
- PDF.Rect.Contains(x, y)
- PDF.Field.SetValue(String)
- PDF.Field.GetValueAsString()
- PDF.Field.GetDefaultValueAsString()
- PDF.PDFDraw.SetCaching()
- PDF.PDFView.GetSelection()
- PDF.PDFView.SelectByRect()
- PDF.PDFView.SelectByStruct()
- PDF.PDFView.SelectAll()
- PDF.PDFView.FindText()
- PDF.PDFView.IsFinished()
- PDF.PDFView.HasSelection()
- PDF.PDFView.ClearSelection()
- PDF.PDFView.SetProgressiveRendering()
- PDF.PDFView.SetPageBorderVisibility();
- PDF.PDFView.SetDefaultPageColor();
- PDF.PDFView.SetBackgroundColor();
- PDF.PDFView.OnBackColorChanged ()
- PDF.PDFView.OnForeColorChanged ()
- PDF.PDFView.SetHorizontalAlign();
- PDF.PDFView.SetVerticalAlign();
- PDF.DictIterator.HasNext()
- PDF.PageIterator.HasNext()
- PDF.FieldIterator.HasNext()
- PDF.FDFFieldIterator.HasNext()
- PDF.GSChangesIterator.HasNext()
- PDF.CharIterator.HasNext()
- PDF.FontCharCodeIterator.Next()
- PDF.FontCharCodeIterator.HasNext()
- PDF.FontCharCodeIterator.Current()
- PDF.Font.GetCharCodeIterator()
- SDF.SDFDoc.RemoveSecurity()
- SDF.NameTreeIterator.GetIterator()
- SDF.NameTreeIterator.GetValue()
- SDF.NumberTreeIterator.GetIterator()
- SDF.NumberTreeIterator.GetValue()
- Dictionary Specific Methods --------
- SDF.Obj.FindObj()
- SDF.Obj.PutName (key, name)
- SDF.Obj.PutArray (key)
- SDF.Obj.PutBool (key, value)
- SDF.Obj.PutDict (key)
- SDF.Obj.PutNumber (key, value)
- SDF.Obj.PutString (key, value)
- SDF.Obj.PutString (key, buf)
- SDF.Obj.PutText(key, value)
- SDF.Obj.PutNull (key)
- SDF.Obj.Put(key, obj)
- SDF.Obj.PutRect (key, x1, y1, x2, y2)
- SDF.Obj.PutMatrix(key, mtx)
- SDF.Obj.Erase(key)
- SDF.Obj.Rename(old_key, new_key)
- Array Specific Methods ---------
- SDF.Obj.GetAt(index)
- SDF.Obj.InsertName (pos, name)
- SDF.Obj.InsertArray (pos)
- SDF.Obj.InsertBool (pos, value)
- SDF.Obj.InsertDict (pos)
- SDF.Obj.InsertNumber (pos, value)
- SDF.Obj.InsertString (pos, value)
- SDF.Obj.InsertString (pos, buf)
- SDF.Obj.InsertText(pos, value)
- SDF.Obj.InsertNull(pos)
- SDF.Obj.InsertRect (pos, x1, y1, x2, y2)
- SDF.Obj.InsertMatrix(pos, mtx)
- SDF.Obj.Insert(pos, obj)
- SDF.Obj.PushBackName (name)
- SDF.Obj.PushBackArray ()
- SDF.Obj.PushBackBool (value)
- SDF.Obj.PushBackDict ()
- SDF.Obj.PushBackNumber (value)
- SDF.Obj.PushBackString (value)
- SDF.Obj.PushBackString (buf)
- SDF.Obj.PushBackText (value)
- SDF.Obj.PushBackNull ()
- SDF.Obj.PushBack(obj)
- SDF.Obj.PushBackRect (x1, y1, x2, y2);
- SDF.Obj.PushBackMatrix(mtx)
- UString.ToLower()
- UString.ToUpper()
Other Changes:
- (.NET Specific) PDFNet11.DLL is renamed to PDFNet.DLL
- (.NET Specific) Element.GetTextString() returns String instead
of Char[].
- class SDF::Doc() -> class
SDF::SDFDoc()
- SDF/Doc.h -> SDF/SDFDoc.h
- PDFDoc.GetPagesCount() -> PDFDoc.GetPageCount()
- Obj.IsStr() -> Obj.IsString()
- Obj.SetStr() -> Obj.SetString()
- GState.GetOpacityFill -> GetFillOpacity
- GState.GetOpacityStroke -> GetStrokeOpacity
- Obj.DictBegin() -> Obj.GetDictIterator()
- FDFDoc.FieldBegin() -> FDFDoc.GetFieldIterator()
Deprecated:
- PDF.PDFDoc.FindPage(), use PDFDoc.GetPage() instead.
- PDF.PDFDoc.FindField(), use PDFDoc.GetField() instead.
- PDF.Rect.CreateSDFRect(), use obj.PutRect()/obj.InsertRect()
instead.
- PDF.Date.CreateSDFDate
- class SDF.ObjVisitor, SDF.AtomVisitor, SDF.ContainerVisitor
- SDF.NameTree.Find(), use NameTree.GetValue() instead.
- SDF.NumberTree.Find(), use NumberTree.GetValue() instead.
- SDFDoc.FixBrokenDoc() - PDFNet now automatically attempts to
repair broken PDF documents so this method is removed from the
public interface.
- SDF.DictIterator.Prev()
- SDF.DictIterator.Advance()
- SDF.Obj.DictEnd(), use DictIterator.HasNext() instead.
- SDF.Obj.Accept()
- SDF.Obj.CreateName()
- SDF.Obj.CreateArray()
- SDF.Obj.CreateBool()
- SDF.Obj.CreateDict()
- SDF.Obj.CreateNull()
- SDF.Obj.CreateNumber()
- SDF.Obj.CreateString()
- SDF.Obj.Clone()
- SDF.Obj.Rename(DictIterator, String)
- SDF.Obj.Replace(DictIterator, Obj)
- SDF.PDFDoc.FixBrokenDoc()
- SDF.SDFDoc::AddObj()
- FDF.FDFDoc.FieldEnd(), use FDFFieldIterator.HasNext() instead.
- FDF.PDFDoc.FieldEnd(), use FieldIterator.HasNext() instead.
- FDF.FDFDoc.PageEnd(), use PageIterator.HasNext() instead.
February 21, 2007 – 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").
- Correct rendering of highlight annotations.
- 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. If background is 'true', the graphics
will be added in a background layer. By default, the new content
will appear on top of the existing graphics.
- compress: An optional flag indicating whether the
page content stream should be compressed. This may be useful
for debugging content streams. Also, some applications need
to do a clear text search on strings in PDF files. By default,
all content streams are compressed.
- 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.
August 11, 2006 – Version 3.5
- PDFView control now features support for fast and smooth scrolling
resulting in faster screen display and better user experience.
- Overall rendering performance and quality has been improved.
- Extended PDFView sample illustrating
how to implement custom controls and custom drawing on top of
PDFView. The new class ‘MyPDFView’ implements drawing
of custom annotations which can be merged with PDF pages. A similar
approach can be used to implement other customizations to the
PDF viewing control (such as form field editing, interactive U3D
model viewing, movie annotations, etc).
- Embedding support for CFF OpenType fonts (a new feature in
PDF 1.6).
- Matched Acrobat's behavior for TrueType fonts with broken or
missing tables.
- Improved support for Mac fonts.
- Improved font substitution. As a result, documents with missing
fonts will render more accurately.
- Support for radial shadings. PDFNet SDK rasterizer can now
render perfectly smooth gradients and covers all possible variants
in the radial shading.
- Support for Free-Form Gouraud-shaded triangle mesh shadings
(type 4) and Lattice Gouraud Shadings (type 5). PDFNet rasterizer
can now render perfectly smooth and stitched Gouraud meshes.
- Cross-platform utility methods to extract embedded images to
PNG, TIFF, and JPEG (see PDF.Image.Export(),PDF.Image.ExportAsTiff(),
and PDF.Image.ExportAsPng())).
- Improvements related to compatibility with the PDF-A standard.
- New Feature/Bug Fix: RefreshAppearance is extended to support
justification for multi-lined text fields.
- Bug Fix (.NET): Better garbage collection of Filter objects.
New Types and Methods:
- PDFView.GetDeviceTransform()
- Image.Export()
- Image.ExportAsTiff()
- Image.ExportAsPng()
- Shading.GetGouraudMesh()
- class Shading.GouraudMesh
- Shading.GetGouraudMesh
Name Changes:
- ColorSpace.ColorSpaceType -> ColorSpace.Type
- Font.FontType -> Font.Type
- Shading.ShadingType -> Shading.Type
- PatternColor.PatternColorType -> PatternColor.Type
- Function.FunctionType -> Function.Type
- Element.ElementType ->Element.Type
June 1, 2006 - Version 3.2
- PDFNet SDK now includes two separate rasterizer implementations
utilizing different graphics libraries. The default rasterizer
is 'e_BuiltIn' which is a high-quality, anti-aliased and platform-independent
rasterizer. This rasterizer is available on all supported platforms.
On Windows platforms, PDFNet SDK also includes a GDI+ based rasterizer
which is included mainly to provide vector output for printing,
for EMF/WMF export, etc. To switch between different rasterizer
implementations use SetRasterizerType() method on the PDFDraw,
PDFView, or PDFRasterizer objects.
- More efficient mechanism for screen updating in the PDFView
class.
- New print support functions in the PDFView sample and extra
options to dynamically switch between different rasterizer implementations.
- Support for RAW JPEG2000 code-streams.
- Unlimited zoom option in the PDFRasterizer class.
- Automatic font subsetting. The subsetting process is completely
transparent and is enabled by default.
- New utility methods for creating PDF fonts from Windows fonts.
For example:
System.Drawing.Font sys_font = new
System.Drawing.Font("Comic Sans MS", 12);
Font sys_font = Font.CreateTrueTypeFont(doc, sys_font, true, true);
- Improved Unicode support and resilience to various character
mapping errors and CMap issues due to buggy output from third-party
PDF creators.
- New utility methods to extract PDF images and to convert them
to GDI+ Bitmaps. For examples of how to use the new methods, please
take a look at the new ‘ImageExtract’
sample project.
- New utility methods for creating Form XObject elements from
input PDF pages. These methods are especially useful in applications
performing page imposition. For examples of how to use the new
methods, please take a look at the updated ‘Imposition’
sample project.
- A new utility class to manipulate a document’s viewing
preferences.
New Types and Methods:
- PDFRasterizer.SetRasterizerType()
- PDFRasterizer.GetRasterizerType()
- PDFRasterizer.SetAntiAliasing()
- PDFRasterizer.Rasterize(page, HDC, …)
- PDFDraw.SetRasterizerType()
- PDFDraw. SetAntiAliasing()
- PDFDraw.DrawInRect (page, HDC, …)
- PDFDraw.DrawInRect (page, Graphics …)
- enum PDFDraw.PixelFormat
- PDFDraw.GetBitmap(…, PixelFormat pix_fmt)
- PDFDraw.SetErrorHandlerProc()
- ColorSpace ‘Gray’ hint in Export/GetBitmap()
- PDFView.GetDoc()
- PDFView.SetRasterizerType()
- PDFView.SetAntiAliasing()
- PDFView.SetRenderUpdateProc() is deprecated.
- PDFView.SetRenderBeginProc()
- PDFView.SetRenderFinishProc()
- Font.CreateTrueType(doc, LOGFONT, …)
- Font.CreateTrueType(doc, Font, …) [.NET]
- Font.CreateCIDTrueType(doc, LOGFONT, …)
- Font.CreateCIDTrueType(doc, Font, …) [.NET]
- Image.GetBitmap()
- Element.GetBitmap()
- ElementBuilder.CreateForm(Page)
- ElementBuilder.CreateForm(Page, Doc)
- PDFView.GetPageNumberFromScreenPt()
- PDFDoc.GetViewPrefs()
- class PDFDocViewPrefs
- PDFDocViewPrefs.SetInitialPage()
- PDFDocViewPrefs.SetPageMode(mode)
- PDFDocViewPrefs.GetPageMode()
- PDFDocViewPrefs.SetLayoutMode(layout)
- PDFDocViewPrefs.GetLayoutMode()
- PDFDocViewPrefs.SetPref(pref, value)
- PDFDocViewPrefs.GetPref(ViewerPref pref)
- PDFDocViewPrefs.SetNonFullScreenPageMode(mode)
- PDFDocViewPrefs.GetNonFullScreenPageMode()
- PDFDocViewPrefs.SetDirection(left_to_right)
- PDFDocViewPrefs.GetDirection()
- PDFDocViewPrefs.SetViewArea(box)
- PDFDocViewPrefs.GetViewArea()
- PDFDocViewPrefs.SetViewClip(box)
- PDFDocViewPrefs.GetViewClip()
- PDFDocViewPrefs.SetPrintArea(box)
- PDFDocViewPrefs.GetPrintArea()
- PDFDocViewPrefs.SetPrintClip(box)
- PDFDocViewPrefs.GetPrintClip()
- PDFDocViewPrefs.GetSDFObj()
Bug fixes:
- A bug in PDFView class related to interactive multi-threaded
PDF rendering.
- A bug in PDFView.ConvCanvasPtToScreenPt() not returning the
correct value.
February 1, 2006 - Version 3.1
- Support for AES (Advanced Encryption Standard) encryption. AES
encryption is a new feature in PDF 1.6 and Acrobat 7.
- PDFNet SDK resource folders are now replaced with a single redistributable
resource file ('pdfnet.res'), which simplifies the deployment
of PDFNet based applications supporting CJKV languages and predefined
encodings. The new resource file is also highly compressed resulting
in the smaller application size.
- Support for Visual Studio C++ 2005 and Microsoft .NET Framework
2.x.
- New sample projects for Linux illustrating basic PDF rasterization
and bitmap export to different image formats.
- New cross-platform option for TIFF export.
- New JPEG Quality encoder parameter for JPEG export in PDFDraw.
- New image smoothing options in PDFDraw and PDFView.
- Support for opening PDF documents using ‘StdFile’
with ‘wchat_t’ parameter (i.e. support for Unicode
filenames in C++). This option is available only on platforms
supporting Unicode file systems.
- Improved linearization optimizer.
New Types and Methods:
- StdSecurityHandler.AlgorithmType
- StdSecurityHandler(AlgorithmType)
- StdSecurityHandler.IsAES()
- StdSecurityHandler.IsRC4()
- StdSecurityHandler.SetEncryptMetadata()
- PDFDoc.GetDocInfo()
- New utility class PDFDocInfo
- PDFDocInfo.GetTitle()
- PDFDocInfo.SetTitle()
- PDFDocInfo.GetAuthor()
- PDFDocInfo.SetAuthor()
- PDFDocInfo.GetSubject()
- PDFDocInfo.SetSubject()
- PDFDocInfo.GetKeywords();
- PDFDocInfo.SetKeywords()
- PDFDocInfo.GetCreator()
- PDFDocInfo.SetCreator()
- PDFDocInfo.GetProducer()
- PDFDocInfo.SetProducer()
- PDFDocInfo.GetCreationDate()
- PDFDocInfo.SetCreationDate()
- PDFDocInfo.GetModDate()
- PDFDocInfo.SetModDate()
- PDFDocInfo.GetSDFObj()
- PDFRasterizer.SetImageSmoothing()
- PDFDraw.SetImageSmoothing()
- PDFView. SetImageSmoothing()
- PDFView::CancelRendering()
- PDFView::SetDrawAnnotations()
- PDFView.Close() [.NET]
November 22, 2005 - Version 3.0
July 21, 2005
- Font substitution using all available fonts. PDFNet is now
doing a better job in searching locally available fonts that can
be used as visual substitutes for fonts that are missing (i.e.
that are not embedded) in PDF documents.
- Improved visual rendering of substituted fonts.
- Enhanced JPEG2000 decoder support. All PDFNet users can now
benefit from a brand new, high-performance JPEG2000 engine which
can be used to decode and process any JP2 embedded streams in
PDF. The JPEG2000 filter (introduced in PDF 1.5) decodes data
that has been encoded using the JPEG2000 compression method, an
international standard for the compression and packaging of image
data (see http://www.jpeg.org/jpeg2000
for details). JPEG2000 defines a wavelet-based method for image
compression that can give better size reduction than other methods
such as regular JPEG or CCITT.
- Utility functions and sample code demonstrating the simplicity
of embedding JP2 (JPEG2000) images in PDF. See AddImageTest
sample project for details.
- JBIG2 decoder support. All PDFNet users can now decode and preview
monochrome (1 bit per pixel) images created using PDFNet. JBIG2
provides considerably better compression than the existing CCITT
standard. Images of pages containing text in any language compress
particularly well, with typical compression ratios of 20:1 to
50:1 for a page full of text. PDFNet has been supporting lossless
and lossy JBIG2 encoding in previous product releases for more
than a year.
- Interactive forms
sample project has been extended with code samples illustrating
how to work with check boxes and buttons. There are several new
utility methods that simplify work with forms and form appearances.
New Types and Methods (incomplete list):
- PDFDoc.AddFileAttachment()
- enum Annot.AnnotationState
- Annot.GetAppearance()
- Annot.SetAppearance()
- Action.CreateSubmitForm()
Name Changes:
- Filed.GetAppearance() -> Annot.GetAppearance()
Bug fixes:
- Small improvement in serialization of very small and very large
numbers.
- New FDF merge and extract implementation.
- Bug fix in lossy JBIG2 encoder.
- Bug fix related to color conversion from DeviceN color spaces
and PostScript calculator functions.
- Improved consistency with Acrobat 7 for some embedded fonts
that are marked as symbolic.
- Numerous other bug fixes.
May 20, 2005
- Action, Annot, FileSpec high-level utility classes.
- AnnotationTest sample project was extended to illustrate the
capabilities of the above mentioned high-level classes.
- Hook functions for number parsing and serialization allowing
client applications to customize PDF number processing. Default
number functions were updated to work with IEEE single-precision
floating-point numbers for compliance with Acrobat 6 and 7. Older
Acrobat versions used 32-bit fixed-point numbers which had much
smaller range than IEEE floating-point numbers, but greater precision.
- Support for some CCITTFax streams created using buggy, third
party PDF creators.
- The limit for the maximum number of pages in a single PDF document
was extended to 2^32 (4294967296).
- (.NET) A major update of managed code. The new implementation
is compliant with C++/CLI, a new managed language from Microsoft.
New Types and Methods (incomplete list):
- class Annot
- class Action
- class FileSpec
- Field.IsValid()
- Date.IsValid()
- Page.GetNumAnnots()
- Page.GetAnnot()
- Page.AnnotInsert()
- Page.AnnotPushBack()
- Page.AnnotPushFront()
- Page.GetUserUnitSize()
- Page.SetUserUnitSize()
- Function.GetSDFObj()
- PDFDoc.GetOpenAction()
- PDFDoc.SetOpenAction()
- PDFDoc.IsLinearized()
- Doc.IsLinearized()
- Doc.GetLinearizationDict()
- Doc.GetHintStream()
Name Changes:
- Field.FieldType -> Field.Type
- Field.FieldFlag -> Field.Flag
- Page.CreateWidget() -> Annot.CreateWidget(
Bug Fixes:
- (.NET/C++) Linearization/Fast web view - small adjustments to
the hint format for compatibility with Acrobat.
- (.NET) A solution to a problem related to shared resources.
The exception was occurring only in .NET component running on
machines with hyper-threaded CPU-s or multi-processor systems.
April 8, 2005
- Linearization (Fast Web View) support.
- High level read/write/edit access to extended graphics state
(e.g. transparency, alpha channels, color conversion functions,
etc).
- Support for field names represented using Unicode (PDF 1.6
feature).
- Enhanced forms API (better appearance stream refresh, support
for all field flags, text justification, multi-line text, etc).
- Improved support for image transparency and image masking.
PDFNet now automatically recognizes alpha channel in all supported
raster formats and will preserve them during image import. Image
class was extended with several methods related to image masks
and soft masks making it easier to work with explicit, soft, and
color-key masking. Also there are several new utility methods
for embedding images.
- New image encoder hint allowing the user to control the compression
level for the Flate filter.
- Performance improvements in the rasterizer and content extraction
API.
- Improved lossy JBIG2 compression.
- Bug fixes
New Types and Methods (incomplete list):
- Doc.SaveOptions.e_linearized
- PDFDoc.RefreshFormAppearances()
- Element.UpdateTextMetrics()
- Element.HasTextMatrix()
- ElementBuilder.Reset()
- Field.GetJustification()
- Field.SetJustification()
- Field.GetFlag()
- Field.SetFlag()
- StdFile.FileSize()
- GState.SetBlendMode()
- GState.SetFillOpacity()
- GState.SetStrokeOpacity()
- GState.SetAISFlag()
- GState.SetSoftMask()
- GState.SetStrokeOverprint()
- GState.SetFillOverprint()
- GState.SetOverprintMode()
- GState.SetAutoStrokeAdjust()
- GState.SetSmoothnessTolerance()
- GState.SetBlackGenFunct()
- GState.SetUCRFunct()
- GState.SetTransferFunct()
- GState.SetHalftone()
- GState.GetBlendMode()
- GState.GetOpacityFill()
- GState.GetOpacityStroke()
- GState.GetAISFlag()
- GState.GetSoftMask()
- GState.GetStrokeOverprint()
- GState.GetFillOverprint()
- GState.GetOverprintMode()
- GState.GetAutoStrokeAdjust()
- GState.GetSmoothnessTolerance()
- GState.GetTransferFunct()
- GState.GetBlackGenFunct()
- GState.GetUCRFunct()
- GState.GetHalftone()
- Image.Create(String)
- Image.Create(String, Obj hint)
Name Changes:
- Element.GetComputedTextLength -> Element.GetTextLength.
- PDFDoc.InteractiveFieldBegin -> PDFDoc.FieldBegin
- FDFDoc.InteractiveFieldBegin -> FDFDoc.FieldBegin
- PDFDoc.InteractiveFieldEnd -> PDFDoc.FieldEnd
- FDFDoc.InteractiveFieldEnd -> FDFDoc.FieldEnd
- PDFDoc.InteractiveFieldFind -> PDFDoc.FieldFind
- FDFDoc.InteractiveFieldCreate -> FDFDoc.FieldCreate
December 22, 2004
- Initial support for PDF 1.6 (Acrobat 7 documents)
- A brand new high-performance, high-quality, and platform independent
rasterizer featuring support for pattern fills, smooth shading
and transparency (PDFDraw2.h). There will be more information
about this rasterizer in the upcoming releases of PDFNet.
- Numerous bug fixes, memory optimizations and speed improvements.
- Image::ImageCompression was renamed into InputFilter. InputFilter
is now optional parameter in Image::Create() methods.
- ElementWriter now automatically recognizes text runs that can
be joined in TJ arrays resulting in more efficient text output
and ease of use.
- ElementWriter.Flush()
September 24, 2004
- GUI feedback in PDFView sample project. PDFView now collects
authentication information for password protected documents.
- Sample code improvements
Bug fixes:
- Font resource leak and other minor bug fixes.
September 13, 2004
- Speed improvements through improved resource caching.
- Minor bug fixes.
September 7, 2004
- Optional annotation rendering for print and preview (PDFDraw.SetDrawAnnotations()).
- Support for both lossless and lossy JBIG2 compression.
- New sample project - JBIG2Test. The sample project illustrates
how to recompress bi-tonal images using advanced JBIG2 compression.
- New hint parameters for PDF image embedding.
- Support for multi-frame TIFF files and extra options to set
JPEG quality in PDFDraw image export.
- PDFDraw.SetRegion() method to select rendering of a page subset.
Bug fixes:
- Minor printing errors
- Font clipping errors
- Proper rotation rendering
August 24, 2004
- Support for lossless JBIG2 compression
- Image, Text, and Path Smoothing.
- PDF Rasterizer / Viewer (PDFDraw class)
- Enhanced support for CJKV languages, vertical text
- Unicode support through composite fonts (Font::CreateCIDTrueTypeFont).
- Improvements to PDF API reference Manual documentation.
- C++ headers are cleaned up
New Types and Methods (incomplete list):
- Image::Create(Bitmap*)
- Page.GetIndex()
- Font.IsSimple(), Font.GetVerticalAdvance()
- CMap.IsHorizontal()
- Filed::GetDefaultValue
- Field::Rename()
- Field::IsAnnot
Name Changes:
- In order to simplify working with paths ElementBuilder now remembers
fill and stroke path attributes. Instead of having to call SetPathFill()
and SetPathStroke() on every path Element, these attributes are
now inherited from the last Element. This is consistent with inheritance
of all other graphical attributes in previous versions of PDFNet.
- For clarity PDFDoc::GetPageNumber() is renamed to PDFDoc::GetPagesCount().
Bug Fixes:
- Incorrect transform matrix during editing of very complex pages.
|

Product Info
Feature Chart
What's New?
F.A.Q.
User Manual
API Reference
Sample Code
Forum/RSS
Get the Demo!
Licensing
Contact
|