Created Date: 18 Nov, 2022 15:14
Last Modifed Date: 18 Nov, 2022 15:14


Introduction

This is a maintenance release that addresses identifiable support issues, labeled MAKOSUP-XXXXX. The link is live and can be followed to the Mako support portal, but it only works for the customer who reported it.

Issues addressed

MAKO-4163

MAKOSUP-11042 Handle case of missing glyph in type 3 fonts


Fixed an issue where Mako threw an exception due to a poorly constructed Type 3 font in a PDF.

MAKO-4268

MAKOSUP-11043 Mako does not remove all PRESCRIBE commands from print job


Mako already skipped Kyocera PRESCRIBE commands in PJL. This change extends that to the PCL5 stream. However, as it’s possible for the PRESCRIBE start sequence (!R!) to occur in normal text, a new API, IPCL5Input::setIgnorePrescribe(), is introduced. When set to true, all PRESCRIBE commands present in the PCL5 are filtered out of converted text.

MAKO-4269

MAKOSUP-11048 Font Calibri is removed


In this case, the font is not removed, but the appearance of text elsewhere on the page appears pixelated when text is redacted. This is caused by the behavior of the redactor in the presence of a soft mask that covers the entire page. The problem is solved by breaking up the soft mask such that the rasterizing the redactor carries out is localized. An environment variable, MAKO_REDACTOR_DISABLE_SPLIT_MASKED_IMAGES, is introduced. Setting this (to anything) reverts to the previous behavior, should it be needed.

MAKO-4159

MAKOSUP-11054 Conversion from XPS to PDF renders a black (inverted) image


This issue was caused by a CMYK image present in an XPS document. Although the XPS specification does not recommend the use of CMYK JPEG, Mako has now been updated to properly support them, both for rendering and conversion.

MAKO-4185

MAKOSUPJP-10617 Improve handling of external fonts (PostScript to PDF conversion)


The problem that the customer saw was that Mako’s IDistiller() class would produce an invalid PDF when processing PostScript that referenced external fonts that had not been set up correctly. They expected an error to be reported and no output produced. The changes made ensure that Mako now behaves in the manner the customer expects.

MAKO-4265

MAKOSUP-11057 Conversion from XPS to PDF fails for a specific Word file


An XPS created by printing from Word could not be successfully converted to PDF/A by Mako. This was caused by a font with a marking Glyph ID 0, which the ISO standard does not allow. Mako now scans for and remaps marking .notdef glyphs to meet the requirements of the PDF/A and PDF/X standards, while leaving the page content unchanged.

MAKO-4262

MAKOSUP-11066 Glyphs "SetIsInvisible" not working with PCL to XPS conversion


While converting the exhibit PCL file to XPS, with an intermediate step to hide text (by setting the SetIsInvisible flag to true), the XPS result was corrupted. Now fixed.   

MAKO-4261

MAKOSUP-11069 PDF processing error


Using Mako to convert a PDF to PDF/A-1a (using MakoConverter) the customer received an error message and no output was produced. Investigation revealed that the PDF had a syntax error, which triggered this exception in Mako:

%%[ Error: undefined; OffendingCommand: QQ ]%%

There is no such command as QQ; it should read Q Q. As this problem is ignored by Acrobat Reader, which can display the file, Mako has been made to do the same.

MAKO-4266

MAKOSUP-11071 PCL6 File analysis fails


This error was caused by a zero-sized glyph in the customer exhibit. Now fixed.

MAKO-4238

MAKOSUP-11076 Bullet glyphs don't render correctly


A customer-supplied PDF contained several fonts that weren't embedded, and two of the fonts, Wingdings and Symbol, showed differences when rendered or converted to XPS and compared with Acrobat. The reason for these differences was that Mako was substituting with its own CID fallback font rather than using the OS fonts on disk. Now fixed.

MAKO-4241

MAKOSUP-11078 Error opening files from Windows 11 Scan App


Added a mitigation (automatic repair) for an incorrectly formed PDF (an erroneous xref table pointer).

MAKO-4249

MAKOSUP-11083 PDF Render with alpha issue


When rendering an RGB PDF to separations, results would differ depending on whether an alpha channel is requested. This should not be the case. Now fixed.

MAKO-4280

Crash in Mako when loading a PDF without a trailer


The problem was triggered by a broken PDF. A fix to mitigate the problem is introduced, and if that fails then an exception is thrown.

MAKO-4203

Image corruption rendering to huge rasters (> 2 GB frame buffer)


Trivial fix of an internal integer overflow.

MAKO-4199

Poor rendering of a PDF


A specific combination of transparency blend mode and spot color overprint setting triggered incorrect compositing. Now fixed.

New and improved features

MAKO-4180

Array limit of 2 GB in C# and C++ is too small to run customer files


This problem emerged when attempting to render very large (>2 GB) images from a source PDF. With C++ the error presented as a corrupted image; fixing an integer overflow solved the problem. For C#, the inherent limit of 2GB for arrays could not be overcome; the customer was advised accordingly.

MAKO-4196

Add work to Mako carried out for StreamlineOptimize


An improvement to the vector flattener to cache reusable content contained in a transparency group is added in this release. For a specific customer exhibit, the output shrunk from 27 GB to 26 MB and cut processing time by five-sixths. As this is an experimental feature, it is not ‘on’ by default; setting the environment variable JM_REUSE_ENCAPSULATED_GROUPS to anything enables it.

A debug message "form seen in callback" is reported to stderr when a cache hit is encountered.

Distribution

MAKO Version 6.6.2 is built for the following platforms:

  • iOS
  • macOS
  • Linux (for Debian-based distributions; for example, Ubuntu 20.04 LTS, Mint)
  • Linux (Centos)
  • Linux (Red Hat Enterprise v7.0)
  • Linux (Red Hat Enterprise v8.4)
  • Linux (for Debian Buster) (arm32v7 for Raspberry Pi)
  • Linux (for Debian Bullseye) (arm64v8 for Raspberry Pi)
  • Linux (for Debian Bullseye)
  • Linux (for MUSL distributions, eg Alpine Linux)
  • Windows (static and dynamic libs, VS 2019 (V142), x86 and x64)
  • Windows (static and dynamic libs, VS 2017 (V141), x64)
  • Windows UWP/WinRT

The Android build has been dropped from this release pending a tooling change. Please contact Mako support if you need a Mako release for Android later than Mako 6.1.0.

Mako supports the following programming languages:

  • C++ (Mako is written in C++)
  • C# (.Net Core and .Net Framework)
  • Java (built with OpenJDK11)
  • Java (built with OpenJDK15)
  • Python (v3.8)

The alternatives to C++ are built using SWIG (www.swig.org), which provides a translation to the native libraries, are found in these distribution folders:

  • Linux_SWIG_(C#-Java-Python)
  • Linux_Centos7_SWIG_(C#-Java-Python)
  • Linux_Centos8_SWIG_(C#-Java-Python)
  • Linux_Ubuntu_SWIG_(C#-Java-Python)
  • macOS_SWIG_(C#-Java-Python)
  • macOS_SWIG_(C#-Java11-Python)
  • Windows_SWIG_(C#-Java-Python)
  • Windows_SWIG_(C#-Java11-Python)