Version 9.1.0.78544 Changelog (September 14th, 2021)

Version: 9.1.0.78544

Release Date: September 14th, 2021

Breaking Changes

  • [tools] PdfViewCtrlTabInfo class: property has been moved

Declaration

From:

PdfViewCtrlTabInfo.TabPreviewFolderName

To:

DocumentManager.TabPreviewFolderName

  • [tools] ViewerControl class: cleanup method changed

Declaration

From:

ViewerControl.CleanUp()

To:

ViewerControl.Dispose()

New Features

Outline redesign and editing capability

Outline has been redesigned to display items in a treeview style and it also has editing capabilities

Re-organizing

Deleting

Apryse Docs Image
Apryse Docs Image

Improvements

  • [pdf] Added Digital Signature Verification/Validation and LTV (Long Term Validation with time stamping) support
  • [pdf] Expand Text Diffence tools to support exclusion zones (TextDiff.Options.AddIgnoreZonesForPage())
  • [pdf] Expanded Reflow API with more control over how images are included/excluded
  • [tools] Improved positining of TextBox annotation on insertion considering different font sizes
  • [tools] Added supported to copy the internal text of annotations like Sticky note and TextBox
  • [tools] Added better cleanup logic to remove unused preview images and documents from the Local and Temporary app's folder
  • [tools] Escape key will now save ongoing Free Text annotation creation - previous behavior would just delete it
  • [tools] [control] Context Menu: Added ability to cut annotation so it can be paste in a different page or document
  • [tools] [control] ViewerControl: Improved cleanup/dispose, removal of unused events, on deactivation
  • [tools] [control] ViewerControl: Improved performance when opening Side Panel / Outline by only loading annotations when requested
  • [tools] [control] ViewerControl: Added error message when trying to load a not supported format using ActivateWithFileAsync
  • [tools] [control] ViewerControl: Improved icons size and look on command bar
  • [tools] [control] ViewerControl: Page Up and Page Down can now control pages
  • [tools] [control] FindText: added mechanism to the ViewModel to avoid events to be re-registered
  • [tools] [control] Custom Color Dialog: improved UX by adding nice round corners to the dialog

Bug Fixes

  • [tools] Added better internal exception handlers to ensure no unhandled exceptions happen
  • [tools] [control] ViewerControl: fixed context menu getting stuck after a keyboard shortcut Shift + F10 is issued
  • [tools] [control] ViewerControl: fixed missing notification (to Undo/Redo and Save doc) after a Link annotation is added to the document
  • [tools] [control] ViewerControl: fixed issue where the Side Panel resize buttons (Narrow, Medium and Wide) would not trigger an event to resize the side panel when using the ViewerControl on different pages which need to support navigation. The solution is to call ViewerControl.Dispose() on OnNavigatingFrom to ensure all resources are cleared during page navigation
  • [tools] [control] Side Panel/Outline: fixed background color when side panel is in narrow mode

New APIs - PDF SDK

New Methods

  • static SDF.Obj OptionsHelpers.GetArray(SDF.Obj, string)
  • static void InsertREctCollection(SDF.Obj, string, RectCollection, int)
  • SignaturesVerificationStatus PDFDoc.VerifySignedDigitalSignatures(VerificationOptions)
  • void PDFDoc.SaveCustomSignature(byte[], pdftron.PDF.DigitalSignatureField, String)
  • void PDFDoc.SaveCustomSignature(byte[]], pdftron.PDF.DigitalSignatureField, Filters.IFilter)
  • void PDFDoc.AppendTextDiff(PDFDoc, PDFDoc, TextDiffOptions)
  • Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer> pdftron.FDF.FDFDoc.SaveAsXFDFToBufferAsync(XFDFExportOptions)
  • Windows.Foundation.IAsyncAction pdftron.FDF.FDFDoc.SaveAsXFDFAsync(string, XFDFExportOptions)
  • Windows.Foundation.IAsyncAction pdftron.FDF.FDFDoc.SaveAsXFDFAsync(Filters.IFilter, XFDFExportOptions)
  • string pdftron.FDF.FDFDoc.SaveAsXFDFString(XFDFExportOptions)
  • pdftron.PDF.VerificationResult DigitalSignatureField.Verify(pdftron.PDF.VerificationOptions)
  • bool DigitalSignatureField.IsCertification()
  • pdftron.Crypto.X509Certificate DigitalSignatureField.GetSignerCertFromCMS()
  • bool DigitalSignatureField.EnableLTVOfflineVerification(pdftron.PDF.VerificationResult)
  • void DigitalSignatureField.TimestampOnNextSave(pdftron.PDF.TimestampingConfiguration, pdftron.PDF.VerificationOptions)
  • pdftron.PDF.TimestampingResult DigitalSignatureField.GenerateContentsWithEmbeddedTimestamp(pdftron.PDF.TimestampingConfiguration, pdftron.PDF.VerificationOptions)
  • byte[] DigitalSignatureField.CalculateDigest(Crypto.DigestAlgorithm)
  • byte[] DigitalSignatureField.CalculateDigest()
  • void DigitalSignatureField.SetPreferredDigestAlgorithm(Crypto.DigestAlgorithm, bool)
  • void DigitalSignatureField.SetPreferredDigestAlgorithm(Crypto.DigestAlgorithm)
  • void DigitalSignatureField.CreateSigDictForCustomCertification(string , DigitalSignatureFieldSubFilterType, uint)
  • void DigitalSignatureField.CreateSigDictForCustomSigning(string, DigitalSignatureFieldSubFilterType, uint)
  • void DigitalSignatureField.SetSigDictTimeOfSigning(Date)
  • static byte[] DigitalSignatureField.SignDigest(byte[], string, string, bool, Crypto.DigestAlgorithm)
  • static byte[] DigitalSignatureField.SignDigest(byte[], byte[], string, bool, Crypto.DigestAlgorithm)
  • void Reflow.SetHTMLOutputTextMarkup(bool)
  • void Reflow.SetMessageWhenNoReflowContent(string)
  • void Reflow.SetMessageWhenReflowFailed(string)
  • void Reflow.SetHideBackgroundImages(bool)
  • void Reflow.SetHideImagesUnderText(bool)
  • void Reflow.SetDoNotReflowTextOverImages(bool)

New Class - pdftron.PDF.RectCollection

  • New Constructors
    • RectCollection()
  • New Methods
    • void AddRect(Rect)
    • void AddRect(double, double, double, double)
    • Rect GetRectAt(int)
    • int GetNumRects()
    • void Clear()

New Class - pdftron.PDF.TextDiffOptions

  • New Constructors
    • TextDiffOptions()
  • New Methods
    • TextDiffOptions AddIgnoreZonesForPage(RectCollection, int)
    • SDF.Obj GetInternalObj()
    • SDF.Obj GetDict()

New Class - pdftron.PDF.VerificationOptions

  • New Constructors
    • VerificationOptions(VerificationOptionsSecurityLevel)
  • New Methods
    • void Destroy()
    • void AddTrustedCertificate(uint8[], uint64[])
    • AddTrustedCertificate(uint8[])
    • AddTrustedCertificate(string, uint64)
    • void AddTrustedCertificate(string)
    • void addTrustedCertificates(uint8[])
    • void LoadTrustList(FDFDoc)
    • void EnableModificationVerification(bool)
    • void EnableDigestVerification(bool)
    • void EnableTrustVerification(bool)
    • void EnableOnlineCRLRevocationChecking(bool)
    • void EnableOnlineOCSPRevocationChecking(bool)
    • void EnableOnlineRevocationChecking(bool)

New Class - pdftron.PDF.DisallowedChange

  • New Methods
  • void Destroy()
  • int GetObjNum()
  • int GetType()
  • string GetTypeAsString()

New Class - pdftron.PDF.TrustVerificationResult

  • New Methods
    • void Destroy()
    • bool WasSuccessful()
    • string GetResultString()
    • uint64 GetTimeOfTrustVerification()
    • VerificationOptionsTimeMode GetTimeOfTrustVerificationEnum()
    • bool HasEmbeddedTimestampVerificationResult()
    • pdftron.PDF.EmbeddedTimestampVerificationResult GetEmbeddedTimestampVerificationResult()
    • pdftron.Crypto.X509Certificate[] GetCertPath()

New Class - pdftron.PDF.EmbeddedTimestampVerificationResult

  • New Methods
    • void Destroy()
    • boolean GetVerificationStatus()
    • VerificationResultDigestStatus GetCMSDigestStatus()
    • VerificationResultDigestStatus GetMessageImprintDigestStatus()
    • VerificationResultDigestStatus GetTrustStatus()
    • string GetCMSDigestStatusAsString()
    • string GetMessageImprintDigestStatusAsString()
    • string GetTrustStatusAsString()
    • bool HasTrustVerificationResult()
    • TrustVerificationResult GetTrustVerificationResult()
    • Crypto.DigestAlgorithm GetCMSSignatureDigestAlgorithm()
    • Crypto.DigestAlgorithm GetMessageImprintDigestAlgorithm()
    • string[] GetUnsupportedFeatures()

New Class - pdftron.PDF.VerificationResult

  • New Methods
    • void Destroy()
    • DigitalSignatureField GetDigitalSignatureField()
    • bool GetVerificationStatus()
    • VerificationResultDocumentStatus GetDocumentStatus()
    • VerificationResultDigestStatus GetDigestStatus()
    • VerificationResultTrustStatus GetTrustStatus()
    • ModificationPermissionsStatus GetPermissionsStatus()
    • bool HasTrustVerificationResult()
    • TrustVerificationResult GetTrustVerificationResult()
    • DisallowedChange[] GetDisallowedChanges()
    • pdftron.Crypto.DigestAlgorithm GetDigestAlgorithm()
    • string GetDocumentStatusAsString()
    • string GetDigestStatusAsString()
    • string GetTrustStatusAsString()
    • string GetPermissionsStatusAsString()
    • string[] GetUnsupportedFeatures()

New Class - pdftron.PDF.TimestampingResult

  • New Methods
    • void Destroy()
    • bool GetStatus()
    • string GetString()
    • bool HasResponseVerificationResult()
    • PDF.EmbeddedTimestampVerificationResult GetResponseVerificationResult()
    • byte[] GetData()

New Class - pdftron.PDF.TimestampingConfiguration

  • New Constructors
    • TimestampingConfiguration(string)
  • New Methods
    • void Destroy()
    • void SetTimestampAuthorityServerURL(string)
    • void SetTimestampAuthorityServerUsername(string)
    • void SetTimestampAuthorityServerPassword(string)
    • void SetUseNonce(bool in_use_nonce)
    • PDF.TimestampingResult TestConfiguration(PDF.VerificationOptions)

New Class - pdftron.FDF.XFDFExportOptions

  • New Constructors
    • XFDFExportOptions()
  • New Methods
    • bool GetWriteAnnotationAppearance()
    • XFDFExportOptions SetWriteAnnotationAppearance(bool)
    • bool GetWriteImagedata()
    • XFDFExportOptions SetWriteImagedata(bool)
    • virtual SDF.ObjSet GetInternalObj()
    • virtual SDF.Obj GetDict()

New enum - pdftron.PDF.SignaturesVerificationStatus

  • e_unsigned
  • e_failure
  • e_untrusted
  • e_unsupported
  • e_verified

New enum - pdftron.PDF.VerificationOptionsSecurityLevel

  • e_compatibility_and_archiving
  • e_maximum

New enum - pdftron.PDF.VerificationOptionsTimeMode

  • e_signing
  • e_timestamp
  • e_current

New enum - pdftron.PDF.VerificationOptionsCertificateTrustFlag

  • e_signing_trust
  • e_certification_trust
  • e_dynamic_content
  • e_javascript
  • e_identity
  • e_trust_anchor
  • e_default_trust
  • e_complete_trust

New enum - pdftron.PDF.VerificationResultDocumentStatus

  • e_no_error
  • e_corrupt_file
  • e_unsigned
  • e_bad_byteranges
  • e_corrupt_cryptographic_contents

New enum - pdftron.PDF.VerificationResultDigestStatus

  • e_digest_invalid
  • e_digest_verified
  • e_digest_verification_disabled
  • e_weak_digest_algorithm_but_digest_verifiable
  • e_no_digest_status
  • e_unsupported_encoding
  • e_unsupported_digest_algorithm

New enum - pdftron.PDF.VerificationResultTrustStatus

  • e_trust_verified
  • e_untrusted
  • e_trust_verification_disabled
  • e_no_trust_status
  • e_unsupported_trust_features

New enum - pdftron.PDF.ModificationPermissionsStatus

  • e_invalidated_by_disallowed_changes
  • e_has_allowed_changes
  • e_unmodified
  • e_permissions_verification_disabled
  • e_no_permissions_status
  • e_unsupported_permissions_features

New Namespace - pdftron.Crypto

New enum - pdftron.Crypto.DigestAlgorithm

  • e_sha1
  • e_sha256
  • e_sha384
  • e_sha512
  • e_ripemd160
  • e_unknown_digest_algorithm

New enum - pdftron.Crypto.ObjectIdentifierPredefined

  • e_common_name
  • e_surname
  • e_country_name
  • e_locality_name
  • e_state_or_province_name
  • e_organization_name
  • e_organizational_unit_name

New Class - pdftron.Crypto.ObjectIdentifier

  • New Constructors
    • ObjectIdentifier(pdftron.Crypto.ObjectIdentifierPredefined)
    • ObjectIdentifier(int[])
  • New Methods
    • void Destroy()
    • Int[] GetRawValue()

New Class - pdftron.Crypto.X501AttributeTypeAndValue

  • New Methods
    • void Destroy()
    • pdftron.Crypto.ObjectIdentifier GetAttributeTypeOID()
    • String GetStringValue()
  • New Class - pdftron.Crypto.X501DistinguishedName
  • New Methods
    • void Destroy()
    • bool HasAttribute(pdftron.Crypto.ObjectIdentifier)
    • String[] GetStringValuesForAttribute(pdftron.Crypto.ObjectIdentifier)
    • pdftron.Crypto.X501AttributeTypeAndValue[] GetAllAttributesAndValues()

New Class - pdftron.Crypto.X509Extension

  • New Methods
    • void Destroy()
    • bool IsCritical()
    • pdftron.Crypto.ObjectIdentifier GetObjectIdentifier()
    • int[] GetData()
    • String ToString()

New Class - pdftron.Crypto.X509Certificate

  • New Methods
    • void Destroy()
    • X501DistinguishedName GetIssuerField()
    • pdftron.Crypto.X501DistinguishedName GetSubjectField()
    • uint64 GetNotBeforeEpochTime()
    • uint64 GetNotAfterEpochTime()
    • int GetRawX509VersionNumber()
    • string ToString()
    • string GetFingerprint(pdftron.Crypto.DigestAlgorithm in_digest_algorithm)
    • string GetFingerprint()
    • int[] GetSerialNumber()
    • pdftron.Crypto.X509Extension[] GetExtensions()
    • int[] GetData()

New APIs - Tools Package SDK

New Methods

  • async Task DocumentManager.PerformFullCleanupAsync()
  • async Task DocumentManager.StartAutoCleanAsync()
  • async Task DocumentManager.StopAutoCleanAsync()
  • void ViewerViewModel.Dispose()
  • void ViewerControl.Dispose()
  • void AnnotationListViewModel.LoadAnnotationList()

New Properties

  • bool Outline.IsEditEnabled
  • bool OutlineDialogViewModel.IsOutlineEditingEnabled
  • bool ViewerViewModel.IsOutlineEditingEnabled
  • bool ViewerControl.IsOutlineEditingEnabled
  • New Delegates
  • delegate void OutlinePartial.DocumentModifiedEventHandler(PDFDoc)
  • New Events
  • DocumentModifiedEventHandler OutlinePartial.DocumentModified
  • static bool UtilityFunction.MoreThanOneFlag<TValue>(TValue)

New Class - pdftron.Tools.Controls.ViewModels.BookmarkNode

  • New Constructors
    • BookmarkNode(Bookmark)
  • New Properties
    • bool BookmarkNode.IsExpanded
    • bool BookmarkNode.IsInvoked
    • bool BookmarkNode.IsEditing
    • bool BookmarkNode.IsIndeterminate
    • bool BookmarkNode.CollapsedGlyphVisibility
    • bool BookmarkNode.ExpandedGlyphVisibility
    • bool BookmarkNode.IsViewModelEditing
    • bool BookmarkNode.IsNew
    • bool BookmarkNode.HasChildren
    • bool BookmarkNode.HasCheckedChildren
    • bool BookmarkNode.HasUnrealizedChildren
    • Nullable<bool> BookmarkNode.ChildrenLoadedFromDoc
    • Nullable<bool> BookmarkNode.IsChecked
    • Bookmark BookmarkNode.SourceBookmark
    • string BookmarkNode.Title
    • ObservableCollection<BookmarkNode> Children
    • BookmarkNode BookmarkNode.Parent
  • New Enums
    • enum BookmarkNode.ItemRequestUpdates
  • New Methods
    • RelayCommand BookmarkNode.BookmarkNodeButtonClickedCommand
  • New Delegates
    • delegate void BookmarkNode.ItemRequestDelegate(BookmarkNode, ItemRequestUpdates)
  • New Events
    • event BookmarkNode.ItemRequestDelegate BookmarkNode.ItemRequest()

New Class - pdftron.Tools.Controls.ViewModels.OutlineViewModel

  • New Constructor
    • OutlineViewModel(PDFViewCtrl)
  • New Properties
    • bool OutlineViewModel.IsEditing
    • bool OutlineViewModel.IsEditEnabled
    • bool OutlineViewModel.CanReorder
    • bool OutlineViewModel.HasBookmarkNodes
    • int OutlineViewModel.CheckedAmount
    • ObservableCollection<BookmarkNode> DataSource
    • BookmarkNode OutlineViewModel.LastInvokedNode
  • New Methods
    • async Task OutlineViewModel.WaitForOutlineToLoadAsync()
    • async IAsyncOperation<IList<Bookmark>> OutlineViewModel.GetBookmarkListAsync(Bookmark, PDFDoc)
    • async IAsyncOperation<bool> OutlineViewModel.AdjustIsOpen(BookmarkNode)
    • async Task OutlineViewModel.CreateTreeAsync()
    • async Task OutlineViewModel.ExpandTreeViewNodeAsync(BookmarkNode)
    • async void OutlineViewModel.AddOutlineCommandImpl(object)
    • void OutlineViewModel.RemoveBookmarkNodes()
    • void OutlineViewModel.FinishEditingText()
    • void OutlineViewModel.CancelEditingText()
    • RelayCommand OutlineViewModel.AddOutlineCommand
    • RelayCommand OutlineViewModel.EnterEditingCommand
    • RelayCommand OutlineViewModel.ExitEditingCommand
  • New Delegates
    • delegate void OutlineViewModel.DocumentModifiedEventHandler(PDFDoc)
    • delegate void FocusOnSelectedItemEventHandler(BookmarkNode);
  • New Events
    • DocumentModifiedEventHandler OutlineViewModel.DocumentModified
    • FocusOnSelectedItemEventHandler OutlineViewModel.FocusOnSelectedItemRequested

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales