Document Solutions for PDF 6.2.0

Released: Aug 7, 2023

6.2.0 での更新項目

機能

  • Added the ability to open/modify (with limitations) a password protected PDF without specifying the password.
  • Added helper methods to TextBoxField, ComboBoxField and CombTextField: SetPercentFormat(), SetPercentValue(), SetNumberFormat(), SetNumberValue(), SetDateFormat(), SetDateValue(), SetTimeFormat(), SetTimeValue(), SetSpecialFormat() and SetSpecialFormatValue().
  • Added the ability to generate custom time-stamp tokens. The new ITimeStampGenerator interface can be implemented by user and assigned to SignatureProperties.TimeStamp and TimeStampProperties.TimeStamp.
  • GcPdfDocument.Load() method now implements lazy loading of PDF objects. This provides several advantages, including:
    • Improved compatibility with PDFs produced by various vendors.
    • Custom content unknown to GcPdf is now preserved as is.
    • Improved average load speed.
  • GrapeCity Documents PDF Viewer (GcPdfViewer):
    • Document List Panel Enhancements - GcPdfViewer now supports enhancing the Document List panel using custom HTML markup.
      • GcPdfViewer provides name, path, title, and previewContent properties in DocumentListItem type, allowing the user to specify custom HTML markup to represent the documents' list:
        • Name - Display the name of the Document list item.
        • Path - Absolute or relative URL to a PDF document.
        • Title - Item tooltip.
        • PreviewContent - the HTML content to be used as the preview content in the document list.
      • The existing client-side properties and methods - documentListUrl option and addDocumentListPanel and loadDocumentList methods have been enhanced to accept DocumentListItem as a parameter to specify a predefined list of document list items.
    • Keyboard Shortcuts - GcPdfViewer supports several keyboard shortcuts that can make working with PDF documents in the viewer more efficient.
      • Supports redefining, disabling, overriding, and removing the default keyboard shortcuts.
      • Supports binding the default keyboard shortcuts to other keys and creating custom keyboard shortcuts via API using the shortcuts option of the ViewerOptions class.
  • Breaking Changes:
    • The stream that is passed to one of GcPdfDocument.Load() method overloads must now be kept open while the loaded GcPdfDocument is in use.
    • If using GcPdfDocument.MergeWithDocument(), the passed GcPdfDocument is effectively in use while the current document is in use. If it was loaded from a stream, that stream must be kept open too.
    • Several existing collection properties can no longer be modified in place. Instead, create a new instance of the collection and assign it to the property.
    • WidgetAnnotation.TextFormat property has been removed (previously it was obsolete).
    • GrapeCity.Documents.Pdf.Layers.OptionalContentOrderCollection class is now derived from PdfCollection<IPdfObject> (previously it was derived from List<object>).
    • GrapeCity.Documents.Pdf.AcroForms.SignatureLockedFields.FieldNames property type has been changed from ObservableCollection<string> to IEnumerable<string>. To change the value, create a new instance of the collection and assign it to the property.
    • GrapeCity.Documents.Pdf.SoundObject.EncodingFormat property type has been changed from string to IPdfName.
    • GrapeCity.Documents.Pdf.Text.CMap.CMap class has been renamed to CMapTable, CMapBase class has been removed.
    • GrapeCity.Documents.Pdf.Actions.ActionHide.LinkedObjects property type has been changed from List<object> to LinkedObjectCollection. To change the value, create a new instance of the collection and assign it to the property.
    • GrapeCity.Documents.Pdf.Actions.ActionFieldsBase.FieldNames property has been changed from List<string> FieldNames { get; } to IList<IFieldDef> Fields { get; }.
    • Properties ViewerPreferences.PageMode and ViewerPreferences.PageLayout have been marked as obsolete, corresponding properties are now available directly on GcPdfDocument: GcPdfDocument.PageMode and GcPdfDocument.PageLayout.
    • Property WidgetAnnotation.TriggerEvents.Activate has been marked as obsolete, corresponding property is now available directly on WidgetAnnotation: WidgetAnnotation.Activate.
    • GrapeCity.Documents.Pdf.Annotations.PolygonAnnotationBase.Points property type has been changed from IList<PointF> to IReadOnlyList<PointF>. To change the value, create a new instance of the collection and assign it to the property.
    • GrapeCity.Documents.Pdf.Annotations.ImageScale class is now derived from GrapeCity.Documents.Pdf.Wrappers.PdfDictWrapper (previously it was derived from NotifyObject).
    • GrapeCity.Documents.Pdf.Annotations.ButtonAppearance.Image property type has been changed from object to IXObject. IXObject is a common interface for FormXObject and PdfImageObjectBase. An IImage can be assigned to this property using PdfImageHandler: doc.ImageHandlers.GetImageHandler(someBitmap).
    • GrapeCity.Documents.Pdf.Annotations.InkAnnotation.Paths property type has been changed from ObservableCollection<PointF[]> to IReadOnlyList<IReadOnlyLust<PointF>>. To change the value, create a new instance of the collection and assign it to the property.
    • GrapeCity.Documents.Pdf.Annotations.TextMarkupAnnotation.Area property type has been changed from ObservableCollection<Quadrilateral> to IReadOnlyList<Quadrilateral>. To change the value, create a new instance of the collection and assign it to the property.
    • GrapeCity.Documents.Pdf.Annotations.RedactAnnotation.Area property type has been changed from ObservableCollection<Quadrilateral> to IReadOnlyList<Quadrilateral>. To change the value, create a new instance of the collection and assign it to the property.
    • Even if an annotation belongs to several pages, its vertical coordinate is now converted to the GcPdf top/left coordinate system using the media box of the first page in the annotation's Pages collection. The AnnotationBase.PdfRect property provides access to native PDF coordinates.
    • GrapeCity.Documents.Pdf.Structure.StructElement.ID property type has been changed from IList<byte> to IPdfString.
    • PdfIndirectSerializableObject class has been removed, the GrapeCity.Documents.Pdf.Wrappers.PdfWrapperBase and its descendants can be used instead.
    • PdfDict class is now derived from Dictionary<PdfName, IPdfObject> (previously it was derived from Dictionary<string, object>). Instead of using a string directly, use new PdfName(string) instead.
    • GcPdfDocument.NamedDestinations property type has been changed from IDictionary<string, Destination> to IDictionary<string, IDestination>. The IDestination interface is common to Destination and ActionGoTo classes.
    • PdfLang type has been removed, all properties that previously had that type are now of the type string.
    • ICCProfile.IsSame() method has been removed.
    • GrapeCity.Documents.Pdf.Annotations.UnknownAnnotation.Subtype property type has been changed from string to PdfName.
    • PdfDictWrapperObject class has been removed, use PdfDictWrapper instead.
    • CheckBoxField.ValueObj property behavior has been changed, now it returns Boolean true if all widgets of the CheckBoxField use the same name for appearance stream used to display a checked state. Previously it returned "Off" if field was unchecked, or the name of the checked appearance stream. Use PdfValue property to get the PdfName used to hold value.

不具合の修正

  • Several issues related to errors when opening existing PDFs.