SignDoc SDK (C++)  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.

The SignDoc SDK C++ API now requires C++11 or later. The SIGNDOC_PTR macro is now ignored, SignDoc SDK now always uses std::unique_ptr.

The ReturnCode enum has been removed from classes like SignDocDocument and enum class ReturnCode has been added to namespace de::softpro::doc.

The following enumerations have been renamed:

  • SignDocField.CertSeedValueFlag (now CertSeedValueFlags)
  • SignDocField.Flag (now Flags)
  • SignDocField.WidgetFlag (now WidgetFlags)

de::softpro::doc::SignDocDocumentLoader::ping(), de::softpro::doc::SignDocDocumentLoader::loadFontConfigBlob(), de::softpro::doc::SignDocDocumentLoader::loadPdfFontConfigBlob(), and de::softpro::doc::SignDocDocumentLoader::loadTrustedCertificatesFromMemory() have been added. de::softpro::doc::SignDocDocumentLoader::createPDF(), de::softpro::doc::SignDocDocumentLoader::createPDFA(), de::softpro::doc::SignDocDocumentLoader::loadFromFile(), de::softpro::doc::SignDocDocumentLoader::loadFromMemory() now return a return code and give back the document via an output parameter.

Document coordinates for PDF documents now always use 72 units per inch (that is, SignDoc SDK takes UserUnit into account). Function de::softpro::doc::SignDocDocument::getConversionFactors() is 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::o_optimize without setting string parameter "OutputPath". There is a new value, de::softpro::doc::SignDocSignatureParameters::o_if_possible, 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::ftf_ignore_hspace and de::softpro::doc::SignDocDocument::ftf_ignore_hyphenation 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 rc_not_supported, rc_unknown has been replaced by rc_unknown_parameter.

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)

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::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::f_prevent_breaking_tagged_pdf has been replaced by de::softpro::doc::SignDocDocument::siff_allow_breaking_tagged_pdf 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