Skip to content

16.0.10

📅 2022-06-10

Creation of PDF/A-2u and PDF/A-3u compliant documents

Section titled “Creation of PDF/A-2u and PDF/A-3u compliant documents”

In addition to PDF/A-2a, PDF/A-2b, PDF/A-3a and PDF/A-3b, the iDRS can now create PDF files that are compliant with PDF/A-2u or PDF/A-3u standard.

The “U” (Unicode) compliance level enforces character mapping to Unicode values for the text included in the PDF, ensuring reliable search and copy features.

In order to create PDF output with conformance level “U”, provide enum values PdfVersion.PdfA2u or PdfVersion.PdfA3u when creating a CPdfOutputParams object.

The PDF bookmarks writing feature has been reworked in order to be more convenient to use and to offer you more possibilities.

  • A new member CPageMetadata has been added to the CPageContent2 class, and allows you to add one or more CPageBookmark instances that represent a PDF bookmark.

    • The CPageBookmark class allows you to specify the title of the bookmark, the display mode, the destination and zoom factor, as well as the children of the bookmark; according to PDF specifications.
    • This replaces (and extends) the bookmarks mode IDRS_BOOKMARKS_MODE_USER_DEFINED, previously available in the iDRS 15.
  • The enum BookmarksMode now declares only 2 values:

    • The value Enabled (default behavior) will allow bookmarks added to CPageContent2 to be written to the output PDF
    • The value Disabled will prevent bookmarks from being written to the output PDF, even if some are defined in the CPageContent2 object.
  • The iDRS 15 bookmarks mode IDRS_BOOKMARKS_MODE_AUTOMATIC is replaced by the static method CBookmarksOptions.GenerateBookmarks() which can generate an array of bookmarks based on the content of the provided page.
    The advantage over the iDRS 15 solution is that you can edit the generated bookmarks before creating the output document.

High Quality OCR for Cyrillic and Greek languages

Section titled “High Quality OCR for Cyrillic and Greek languages”

IRIS’ High Quality OCR engine (HQOCR) now supports languages that use Cyrillic or Greek alphabets.
This change is transparent to you and improves OCR accuracy, especially on challenging documents such as newspapers, magazines, poor quality scans or photos.

It concerns the following languages:

Russian, Ukrainian, Macedonian, Bulgarian, Serbian, Belarusian, Bosnian Cyrillic, Kazakh Cyrillic, Mongolian Cyrillic and Greek.

Smaller binaries on Linux and Android platforms

Section titled “Smaller binaries on Linux and Android platforms”

Binaries on the Linux and Android platforms are smaller for this release compared to previous versions; on average, a decrease in size of about 20% can be observed.

This change is a plain improvement, as it has no impact on the speed or accuracy of the product.

Removed support for .inf file and registry access in the iDRS samples

Section titled “Removed support for .inf file and registry access in the iDRS samples”

With this release, the licensing setup for the iDRS sample executables has been simplified.

The samples now simply look next to the executable for the licenses.txt file containing the temporary licenses you receive from IRIS when you evaluate the iDRS.

As a result, converting the temporary licenses information into “intermediate” formats (idrs_software_keys16.inf or registry storage) is no longer required to run the iDRS samples.

The reason for this change is that this intermediate format made it ambiguous how the iDRS licenses should be provided to the SDK: for example, you might think that the iDRS licenses should be stored in the registry of the target computer when this is not the case.

The following resources files have been added:

  • cyrillic_engine.bin
  • net_cyrillic.bin
  • greek_engine.bin
  • net_greek.bin
IDDescription
IDRSRD-6197CMetadataInfo documentation should describe which metadata types are supported by each format
IDRSRD-6190The iDRS .NET API reference doesn’t contain all the information from the C++ one
IDRSRD-6189New Output API classes are missing from the C++ API reference
IDRSRD-6188The iDRS is not generating correctly TextAndGraphics Pdfs
IDRSRD-6187CInterpolation::InterpolateNormal should support non-integral interpolation factors
IDRSRD-6186The iDRS 16 shows a severe regression on Korean formatting info detection (font size)
IDRSRD-6184The iDRS display a table on 2 pages instead of 1 when exporting a specific document to docx output
IDRSRD-6182Accuracy of blank page detection should be improved
IDRSRD-6179The iDRS must use latest version of zlib library (1.2.12)
IDRSRD-6172CPage object should be able to save zones even if formatting information were not computed
IDRSRD-6171The iDRS property CPerspective.Corners throws an exception when read from .NET framework API
IDRSRD-6163The iDRS crashes when detecting POSTNET barcodes on a specific blank image
IDRSRD-6162The iDRS doesn’t properly decode content of QR codes containing different unicode ranges
IDRSRD-6157The iDRS macOS deliverable should be notarized
IDRSRD-6156The iDRS Greek OCR should be improved
IDRSRD-6146The iDRS cannot load a specific jpg image on non-Windows platforms
IDRSRD-6137The iDRS throws an exception when recognizing a specific image
IDRSRD-6135The iDRS detects glyph with 0 width, when recognizing with OCR-A1 engine
IDRSRD-6133The iDRS invalidates content of password-protected PDFs when adding digital signature
IDRSRD-6131The iDRS detects a paragraph dropcap inside a table, for a specific Arabic image
IDRSRD-6128The iDRS detects incorrect orientation on a specific Korean image
IDRSRD-6122The iDRS can crash when integrator’s application use boost::threading component
IDRSRD-6120The iDRS can crash when recognizing Korean documents
IDRSRD-6112The iDRS modifies the input image when detecting resolution
IDRSRD-6108The iDRS sample setup should be simplified
IDRSRD-6103The iDRS creates docx Editable or Exact layout types with incorrect numbering and indentation
IDRSRD-6091The iDRS should discard embedded marker from font names loaded from input PDFs
IDRSRD-6088The iDRS crashes in AnalyseLayoutEx() while processing a specific image
IDRSRD-6072The iDRS crashes when analyzing layout of a Korean image
IDRSRD-6068The iDRS Cyrillic OCR should be improved
IDRSRD-6063The size of iDRS Linux and Android binaries could be improved
IDRSRD-5964The iDRS detects Thai language on a document without text
IDRSRD-5891The iDRS detects English language on a Spanish document
IDRSRD-5889The iDRS detects an incorrect language on a specific document.
IDRSRD-5500The iDRS should support PDF/A-2u and PDF/A-3u standards
IDRSRD-5497The iDRS 16 should allow to generate PDFs with bookmarks
IDRSDEV-1366The iDRS .NET samples are not versioned
IDRSDEV-1363The iDRS macOS .NET samples should work on both x86_64 and ARM64 architectures
IDRSDEV-1342The iDRS C API should be available on Linux ARM32
IDRSDEV-1332The iDRS .NET API should be available on Linux ARM32
IDRSDEV-1298The iDRS third party libtiff should be updated to version 4.3.0

The .NET framework API methods returning a structure

Section titled “The .NET framework API methods returning a structure”

Due to the change of the .NET wrapper implementation released with version 16.0.9, the .NET framework API is impacted by an issue that can occur when the corresponding C++ API method returns a structure.

In this case, the generated .NET framework method may throw an exception, depending on the bits alignment of the structure.

In preparing this 16.0.10 release, such a case was detected for methods CPageRecognition.AnalyzeLayoutEx() and CPageRecognition.RecognizePageEx(), both returning an instance of TextDetectionResults structure.

We are looking into a generic solution in order to avoid this problem, but in the meantime, we have added 2 overloads to these methods with the TextDetectionResults structure as an inout parameter. If you use the .NET framework API, then you will have to use these new methods instead of the old ones.

Support of TIFF image format on Android arm64-v8a ABI

Section titled “Support of TIFF image format on Android arm64-v8a ABI”

Following the libtiff component update, the TIFF image format is not properly supported on Android arm64-v8a ABI (used by most modern Android devices) with this version.

Other platforms, as well as Android armeabi-v7a ABI, are not affected by the issue.

Although the TIFF format itself is not very common in mobile device usage, it is however a component of the PDF hypercompression technology (iHQC). Due to that, the issue impacts the creation of PDF output files with the property CPdfOutputParams.PageDisplay set to PageDisplay.HyperCompression.

This problem will be fixed in the next release.

IDDescription
IDRSRD-6207CPageRecognition methods AnalyzeLayoutEx() and RecognizePageEx() throw an exception when used from .NET Framework API
IDRSRD-6206iDRS Android arm64-v8a cannot create PDF iHQC with tiff compression
IDRSRD-6158”Related pages” of The iDRS .NET API documentation are still the Windows ones