SignDoc SDK (.NET without exceptions)  5.0.0
Migrating from SignDoc SDK 4.3.1 to SignDoc SDK 5.0.0

SignDoc SDK is no longer available for 32-bit iOS.

de.softpro.doc.SignDocDocumentLoader.getInstallationCode() and de.softpro.doc.SignDocDocumentLoader.initLicenseManager() have been removed as license files are no longer supported.

de.softpro.doc.SignDocDocumentLoader.pingMemory(), de.softpro.doc.SignDocDocumentLoader.loadFontConfigBlob(), de.softpro.doc.SignDocDocumentLoader.loadPdfFontConfigBlob(), and de.softpro.doc.SignDocDocumentLoader.loadTrustedCertificatesFromMemory() have been added.

Document coordinates for PDF documents now always use 72 units per inch (that is, SignDoc SDK takes UserUnit into account). Functions de.softpro.doc.SignDocDocument.getConversionFactorX() and de.softpro.doc.SignDocDocument.getConversionFactorY() are no longer needed.

de.softpro.doc.SignPKCS7.sign(), de.softpro.doc.SignRSA.sign(), and de.softpro.doc.SignECDSA.sign() now use strings rather than integers for identifying the hash algorithm. de.softpro.doc.SignRSA.sign() now uses a string rather than an integer for identifying the signature scheme, the salt length is passed as separate parameter. de.softpro.doc.TimeStamper.getHashAlgorithm() has been renamed de.softpro.doc.TimeStamper.getHashAlgorithmOID(), de.softpro.doc.TimeStamper.getFallbackHashAlgorithm() has been renamed de.softpro.doc.TimeStamper.getFallbackHashAlgorithmOID().

Integer parameters "CertificateSigningAlgorithm", "DetachedHashAlgorithm", "RSASignatureScheme", and "TimeStampHashAlgorithm" of de.softpro.doc.SignDocSignatureParameters have been replaced with string parameters of the same names.

de.softpro.doc.SignDocSignatureParameters.addTextItem(), de.softpro.doc.SignDocSignatureParameters.addTextItem2(), and de.softpro.doc.SignDocSignatureParameters.setTextItemDirection() now use strings for identifying the text item.

Integer parameter "Optimize" can now be set to de.softpro.doc.SignDocSignatureParameters.Optimize.Yes without setting string parameter "OutputPath". There is a new value, de.softpro.doc.SignDocSignatureParameters.Optimize.IfPossible, which is now the default value for integer parameter "Optimize".

SignDoc SDK now adds text in logical order and uses ActualText where necessary.

Flags de.softpro.doc.SignDocDocument.FindTextFlags.IgnoreHSpace and de.softpro.doc.SignDocDocument.FindTextFlags.IgnoreHyphenation for de.softpro.doc.SignDocDocument.findText() are now implemented and ActualText is used. (ReversedChars is still ignored.)

de.softpro.doc.SignDocFindTextPosition has been renamed de.softpro.doc.SignDocFindTextOccurrence and now contains information about all glyphs making up the found text rather than information about the first and the last glyph. Bounding boxes are now available in most cases. You can extract the text of a PDF document with de.softpro.doc.SignDocDocument.createTextIterator(), e.g., to implement your own text search.

The functions of the de.softpro.doc.SignDoc*Parameters classes no longer return ReturnCode.NotSupported.

de.softpro.doc.SignDocRenderParameters now has named parameters (see de.softpro.doc.SignDocRenderParameters.setInteger() etc.), the old functions like de.softpro.doc.SignDocRenderParameters.setZoom() have been removed:

OldNew
de.softpro.doc.SignDocRenderParameters.setPage() "Page" (integer)
de.softpro.doc.SignDocRenderParameters.setPages() "FirstPage" (integer), "LastPage" (integer)
de.softpro.doc.SignDocRenderParameters.setResolution() "ResolutionX" (floating-opint number), "ResolutionY" (floating-point number)
de.softpro.doc.SignDocRenderParameters.setZoom() "Scale" (floating-point number)
de.softpro.doc.SignDocRenderParameters.fitRect() "Height" (integer), "Width" (integer)
de.softpro.doc.SignDocRenderParameters.fitHeight() "Height" (integer)
de.softpro.doc.SignDocRenderParameters.fitWidth() "Width" (integer)
de.softpro.doc.SignDocRenderParameters.setFormat() "Format" (string)
de.softpro.doc.SignDocRenderParameters.setInterlacing() "Interlaced" (boolean)
de.softpro.doc.SignDocRenderParameters.setQuality() "HighQualityScaling" (boolean)
de.softpro.doc.SignDocRenderParameters.setPixelFormat() "BlackAndWhite" (boolean)
de.softpro.doc.SignDocRenderParameters.setCompression() "Compression" (string)
de.softpro.doc.SignDocRenderParameters.setDecorations() "AddDecorations" (boolean)
de.softpro.doc.SignDocRenderParameters.setDecorationState() "DecorationState" (string, two parameter names)
de.softpro.doc.SignDocRenderParameters.setPrint() "ForPrinting" (boolean)
de.softpro.doc.SignDocRenderParameters.setModificationState()"UseModificationState" (boolean)

Class SignDocParameterNotSetException has been removed.

de.softpro.doc.SignDocDocument.getIntegerProperty() and de.softpro.doc.SignDocDocument.setIntegerProperty() now use a 32-bit integer type for the value of the property on all operating systems.

de.softpro.doc.SignDocDocument.addImageFromBlob has been renamed de.softpro.doc.SignDocDocument.addImageFromMemory, de.softpro.doc.SignDocDocument.addImageFromBlob2 has been renamed de.softpro.doc.SignDocDocument.addImageFromMemory2.

de.softpro.doc.SignDocDocument.copyToMemory(), de.softpro.doc.SignDocDocument.copyAsSignedToMemory(), de.softpro.doc.SignDocDocument.saveToMemory(), de.softpro.doc.SignDocDocument.exportFieldsToMemory(), and de.softpro.doc.SignDocDocument.exportPropertiesToMemory() have been added. They are easier to use than de.softpro.doc.SignDocDocument.copyToStream(), de.softpro.doc.SignDocDocument.copyAsSignedToStream(), and de.softpro.doc.SignDocDocument.saveToStream(), de.softpro.doc.SignDocDocument.exportFields(), and de.softpro.doc.SignDocDocument.exportProperties().

de.softpro.doc.SignDocDocument.convImageRectToPageRect(), de.softpro.doc.SignDocDocument.convPageRectToImageRect(), and de.softpro.doc.SignDocDocument.renderPageAsSignDocImage() have been added.

de.softpro.doc.SignDocDocument.getRenderedSize() now returns the size as return value rather than by side effect.

de.softpro.doc.SignDocSignatureParameters.getState() has been removed, de.softpro.doc.SignDocSignatureParameters.getType() has been added.

de.softpro.doc.SignDocSignature.getMethod() has been added.

Flag de.softpro.doc.SignDocDocument.DocumentFlags.PreventBreakingTaggedPDF has been replaced by de.softpro.doc.SignDocDocument.ShootInFootFlags.AllowBreakingTaggedPDF which has the opposite meaning, that is, SignDoc SDK by default prevents breaking Tagged PDF.

Some SignWare classes have been reimplemented in SignDoc SDK, see

Changes to the .NET API and the WinRT component

There are now two variants of the .NET API, one using exceptions for reporting errors, the other using return codes for reporting exceptions.

The DLL has been renamed to SPSignDoc_5.0_DotNetNoEx.dll.

Namespace de.softpro.signdocsdk has been renamed de.softpro.doc.

Some methods such as SignDocVerificationResult.getSignatureBlob() threw an exception rather than returning null on error.

The return value of SignDocAnnotation.addPoint(), SignDocAnnotation.newStroke(), SignDocAnnotation.setBackgroundColor(), SignDocAnnotation.setBorderColor(), SignDocAnnotation.setBorderLineWidthInPoints(), SignDocAnnotation.setColor(), SignDocAnnotation.setFlags(), SignDocAnnotation.setLineEnding(), SignDocAnnotation.setLineWidthInPoints(), SignDocAnnotation.setOpacity(), and SignDocAnnotation.setPlainText() has been changed from void to Enums.EAnnotation.ReturnCode.

The type of the certificate argument of SignDocField.addCertSeedValueSubjectCertificate(), SignDocField.setCertSeedValueSubjectCertificate(), and SignDocField.setCertSeedValueSubjectCertificate has been changed from String to array of byte.

The type of the return value of SignDocField.getCertSeedValueSubjectCertificate() has been changed from String to array of byte.

de.softpro.signdocsdk.ISignDocColor has been renamed de.softpro.doc.SignDocColor. ColorGray and ColorRGB have been removed, SignDocColor objects are now created with de.softpro.doc.SignDocColor.createGray() and de.softpro.doc.SignDocColor.createRGB(). The type of color components in SignDocColor has been changed from short to byte.

de.softpro.signdocsdk.Source has been renamed de.softpro.doc.Source.

TODO: SignDocAnnotation.getFontSize() return value on error TODO: SignDocAnnotation return values

The return value of SignDocField.getCertSeedValueSubjectCertificate() and SignDocField.getCertSeedValueIssuerCertificate() has been changed from String to an array of bytes.

The length argument of TimeStamper.stamp() has been removed.

SignDocProperty.setName() and SignDocProperty.setPropType() have been removed. SignDocProperty.getPropType() has been renamed getType().

SignDocVerificationParameters.destroy() has been removed.

The return values of de.softpro.doc.SignDocDocument.getBooleanProperty() and de.softpro.doc.SignDocDocument.getIntegerProperty() are now boxed. null is returned if the property does not exist or does not have the requested type.

The arguments of de.softpro.doc.SignDocDocument.copyAsSignedToStream() have been swapped.

The type of aFlags of de.softpro.doc.SignDocDocument.addText() and de.softpro.doc.SignDocDocument.addText2() has been changed to AddTextFlags.

The type of aFlags of de.softpro.doc.SignDocDocument.copyToStream() has been changed to CopyToStreamFlags.

The type of aFlags of de.softpro.doc.SignDocDocument.exportFields() and de.softpro.doc.SignDocDocument.exportProperties() has been changed to ExportFlags.

The type of aFlags of de.softpro.doc.SignDocDocument.importProperties() has been changed to ImportFlags.

The type of aFlags of de.softpro.doc.SignDocDocument.removeLogicalStructure(), de.softpro.doc.SignDocDocument.removePDFA(), de.softpro.doc.SignDocDocument.removePDFUA(), de.softpro.doc.SignDocDocument.removePermissions(), and de.softpro.doc.SignDocDocument.removeXFA() has been changed to RemoveFlags.

Argument aFlags has been added to de.softpro.doc.SignDocDocument.addAttachmentBlob(), de.softpro.doc.SignDocDocument.addAttachmentFile(), and de.softpro.doc.SignDocDocument.importPages().

de.softpro.signdocsdk.Enums.EDocumentLoader.Handler has been removed.

Some enumerations have been replaced by strings to match the C, C++, and Java APIs and to enable user-defined properties:

  • EDocument.PropertyCollection
  • ERenderParameters.ImageFormat
  • ESignatureParameters.BlobParameter
  • ESignatureParameters.ColorParameter
  • ESignatureParameters.IntegerParameter
  • ESignatureParameters.LengthParameter
  • ESignatureParameters.StringParameter
  • EVerificationResult.SignatureBlob
  • EVerificationResult.SignatureString
  • EVerificationParameters.BlobParameter
  • EVerificationParameters.IntegerParameter
  • EVerificationParameters.StringParameter

All enumerations have been renamed and moved to the de.softpro.doc namespace:

Some enumeration constants have been renamed:

  • de.softpro.signdocsdk.Enums.EAnnotation.AnnotationFlag.DefaultLtr (now DefaultLTR)
  • de.softpro.signdocsdk.Enums.EAnnotation.AnnotationFlag.DefaultRtl (now DefaultRTL)
  • de.softpro.signdocsdk.Enums.EAnnotation.AnnotationFlag.Ltl (now LTR)
  • de.softpro.signdocsdk.Enums.EAnnotation.AnnotationFlag.Rtl (now RTL)
  • de.softpro.signdocsdk.Enums.EAnnotation.AnnotationType.Freetext (now FreeText)
  • de.softpro.signdocsdk.Enums.EDocument.AddTextRectFlags.DefaultLtr (now DefaultLTR)
  • de.softpro.signdocsdk.Enums.EDocument.AddTextRectFlags.DefaultRtl (now DefaultRTL)
  • de.softpro.signdocsdk.Enums.EDocument.AddTextRectFlags.Ltr (now LTR)
  • de.softpro.signdocsdk.Enums.EDocument.AddTextRectFlags.Rtl (now RTL)
  • de.softpro.signdocsdk.Enums.EDocument.DocumentFlag.PreventBreakingTaggedPdf (now PreventBreakingTaggedPDF)
  • de.softpro.signdocsdk.Enums.EDocument.DocumentFlag.RelexByteRange (now RelaxByteRange)
  • de.softpro.signdocsdk.Enums.EDocument.DocumentFlag.UseDssOnly (now UseDSSOnly)
  • de.softpro.signdocsdk.Enums.EDocument.SaveFlag.PDF14 (now PDF_1_4)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.DefaultLtr (now DefaultLTR)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.DefaultRtl (now DefaultRTL)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.KeepAp (now KeepAP)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.Ltr (now LTR)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.Rtl (now RTL)
  • de.softpro.signdocsdk.Enums.EDocument.SetFieldFlag.UpdateAp (now UpdateAP)
  • de.softpro.signdocsdk.Enums.EDocument.ShootInFootFlag.AllowInvalidCertificates (now AllowInvalidCertificate)
  • de.softpro.signdocsdk.Enums.EDocument.ShootInFootFlag.AssumeApNotShared (now AssumeAPNotShared)
  • de.softpro.signdocsdk.Enums.EDocument.ShootInFootFlag.AssumeApShared (now AssumeAPShared)
  • de.softpro.signdocsdk.Enums.EDocument.ShootInFootFlag.DountVerifyAfterSigning (now DontVerifyAfterSigning)
  • de.softpro.signdocsdk.Enums.EDocument.UpdateDSSFlags.Vri (now VRI)
  • de.softpro.signdocsdk.Enums.EField.FieldFlag.PushButton (now Pushbutton)
  • de.softpro.signdocsdk.Enums.EField.FieldFlag.Readonly (now ReadOnly)
  • de.softpro.signdocsdk.Enums.EField.FieldType.PushButton (now Pushbutton)
  • de.softpro.signdocsdk.Enums.EField.FieldTypeFlags.PushButton (now Pushbutton)
  • de.softpro.signdocsdk.Enums.EField.SignatureType.NotASigantureField (now NotASignatureField)
  • de.softpro.signdocsdk.Enums.ERenderParameters.DecorationState.Ok (now OK)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.BiometricEncryption.PassPhrase (now Passphrase)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.SHA1RSA (now SHA1_RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.MD5RSA (now MD5RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.SHA256RSA (now SHA256_RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.SHA384RSA (now SHA384_RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.SHA512RSA (now SHA512_RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.RIPE160RSA (now RIPEMD160_RSA)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.ECDSASHA1 (now ECDSA_SHA1)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.ECDSASHA224 (now ECDS_ASHA224)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.ECDSASHA256 (now ECDS_ASHA256)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.ECDSASHA384 (now ECDS_ASHA384)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.CertificateSigningAlgorithm.ECDSASHA512 (now ECDS_ASHA512)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.RemoveXFA.Allowed (now IfAllowed)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.RSASignatureScheme.RssPkcs1 (now PKCS1)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.RSASignatureScheme.RssPss (now PSS)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.TextItem.Advisor (now Adviser)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.TextItemDirection.DefaultLtr (now DefaultLTR)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.TextItemDirection.DefaultRtl (now DefaultRTL)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.TextItemDirection.Ltr (now LTR)
  • de.softpro.signdocsdk.Enums.ESignatureParameters.TextItemDirection.Rtl (now RTL)
  • de.softpro.signdocsdk.Enums.ETimeStamper.StampFlag.DoNotCheckRevocation (now DontCheckRevocation)
  • de.softpro.signdocsdk.Enums.EVerificationParameters.CertificateChainVerificationPolicy.AcceptSelfSignedWithRsaBio (now AcceptSelfSignedWithRSABio)
  • de.softpro.signdocsdk.Enums.EVerificationParameters.VerificationModel.ModifiedChain (now ModifiedShell)
  • de.softpro.signdocsdk.Enums.EVerificationParameters.VerificationFlags.NoRevocation (now IgnoreNoRevocation)
  • de.softpro.signdocsdk.Enums.EVerificationParameters.VerificationFlags.UseOCSPPOnly (now UseOCSPOnly)
  • de.softpro.signdocsdk.Enums.EVerificationParameters.VerificationFlags.NoOSCPNonce (now NoOCSPNonce)
  • de.softpro.signdocsdk.Enums.EVerificationResult.UnknownCriticalExtension (now CriticalExtension)
  • de.softpro.signdocsdk.Enums.EVerificationResult.TimeNotValid (now NotTimeValid)
  • de.softpro.signdocsdk.Enums.EVerificationResult.InvalidPathLength (now PathLength)
  • de.softpro.signdocsdk.Enums.EVerificationResult.InvalidCertificate (now Invalid)
  • de.softpro.signdocsdk.Enums.EWatermark.WatermarkFlags.DefalutLtr (now DefaultLTR)
  • de.softpro.signdocsdk.Enums.EWatermark.WatermarkFlags.DefaultRTL (now DefaultRTL)
  • de.softpro.signdocsdk.Enums.EWatermark.WatermarkFlags.Ltr (now LTR)
  • de.softpro.signdocsdk.Enums.EWatermark.WatermarkFlags.Rtl (now RTL)

de.softpro.signdocsdk.ISignRSA has been renamed de.softpro.doc.SignRSA, de.softpro.signdocsdk.ISignECDSA has been renamed de.softpro.doc.SignECDSA, de.softpro.signdocsdk.ISignPKCS7 has been renamed de.softpro.doc.SignPKCS7, SignRSAWrapper, SignECDSAWrapper, and SignPKCS7Wrapper are no longer needed (and no longer available).

An empty array or string instead of null must now be passed to some functions: de.softpro.doc.SignDocDocumentLoader.createPDFA() (aICC), de.softpro.doc.SignDocDocumentLoader.setLicenseKey() (aProduct, aVersion, aToken), de.softpro.doc.SignDocDocumentLoader.setLicenseKey2() (aProduct, aVersion, aToken), de.softpro.doc.SignDocDocument.saveToFile() (aPath), and de.softpro.doc.SignDocVerificationResult.getBiometricData() (aKey, aKeyPath, aPassphrase).

de.softpro.doc.SignDocVerificationResult.getCertificates() and de.softpro.doc.SignDocVerificationResult.getTimeStampCertificates() return an object of new class de.softpro.doc.Blobs.