Mako 6.6.3 Release Notes
Created Date: 28 Apr, 2023 16:51
Last Modifed Date: 28 Apr, 2023 16:51
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 only works for the customer who reported it.
MAKOSUP-11080 Performance issue converting PDF to PostScript
Implementing a new feature to cache images when writing to PostScript (as Mako already does for PDF) reduced processing time for the customer exhibit from 5 hours to 7 minutes.
MAKOSUP-11100 Huge memory usage when processing a PDF
The customer exhibit has PDF forms (
MAKOSUP-11104 PCL to PDF conversion
There were two issues, both concerning Intellifont fonts. The first was a poorly formed font that triggered an error, which Mako now works around. The second issue required creating a new Hebrew symbol set to map to, allowing the customer files to convert correctly.
MAKOSUP-11105 Jaws Panic in Mako x86 build
An assertion seen in the debug build is now fixed.
MAKOSUP-11107 Problem rasterizing PDF with MAKO
A problem with painting a shading pattern, within a tiling pattern, that used unusually large matrix values was fixed to solve this customer issue.
MAKOSUP-11114 Rendering fails Internal RIP error: PS limitcheck
The fix required an implementation of a function to copy a specific object type found in a color space.
MAKOSUP-11121 Problem rendering PDF with transparency in CMYK profile
The fix required an improvement to CMYK rendering with an alpha channel plus spot colors (RGB was OK).
MAKOSUP-11122 Get and set XMP using the attached PDF fails to write original XMP
This issue arose because Mako deliberately excludes XMP properties that fall outside the predefined schemas in the XMP specification (or the ISO specifications for PDF/X, PDF/A, and so on) when writing to the output.
To allow a customer to override this behavior, the following output option is now available, and can be set with either of these two methods:
MAKOSUP-11130 Problem rendering ai file RGB + alpha
This rendering issue is now fixed.
MAKOSUP-11132 Enlarging page boxes does not update the UserUnit value without a document reload
By design, Mako does not update the page dictionary UserUnit (the scaling value for oversized pages, introduced in PDF 1.6) as it is only required for PDF output. To solve this, a new convenience function,
MAKOSUP-11137 Protect against file deletion/modification of open inputs on macOS
The customer wished to protect against the user throwing away or modifying a PDF that they have opened with Mako, on macOS. Although it was thought this may not be possible with the POSIX semantics used by macOS, it was found that by using
This setting is off by default, and must be enabled manually by using
while there are no files open in Mako. This setting has no effect on operating systems other than macOS.
MAKOSUP-11138 Modifying the Media Box inserts a transformation
Due to the architecture of Mako (which uses a coordinate space that originates top left versus that of PDF that originates bottom left) a top-level transformation is added to a page. The customer discovered that manipulating the media box (with the IPage::setMediaBox() API) resulted in proliferation of parent transformations. This is now addressed, and a single transformation is updated as required.
MAKOSUP-11139 PostScript input with Type 32 fonts - Can they be handled in PDF/XPS output?
This release implements support for Type 32 fonts, which are bitmap fonts. Internally, they undergo a conversion to a supported font type compatible with PDF or XPS output.
MAKOSUP-11143 Error: undefined; OffendingCommand: @PDFopexec
Fixed two issues relating to soft masks. The customer exhibit now renders correctly.
MAKOSUP-11145 PDF/X Non-UTF8 colorant names
An issue often seen in PDF is non-UTF8 colorant names. The PDF specification merely recommends UTF8 encoding for names of spot colors, and consequently authoring tools are free to use alternatives, which often reflect the operating system or locale on which they are installed. ISO standards such as PDF/X-4 attempt to address this shortcoming by stipulating spot color names be encoded as UTF8, which means that Mako may need to convert the string. This change adds a new feature to PDF output, enabled by default, whereby Mako automatically fixes non‑UTF8 names, selecting an appropriate encoding based on the character codepoints encountered.
Should the result be incorrect, control over the choice of encoding is provided as a fallback, by way of a parameter setting for
MAKOSUP-11146 IRenderTransform “tearing”
This issue was caused by a poorly defined “hint” (the font mechanism that improves glyph appearance when rendered at low resolutions) which caused the dot above an "i" to spread upwards. The problem was identified and a workaround implemented.
Use #pragma comment to load libraries in Windows builds
In response to a customer request, two Windows libraries used by Mako (ws2_32.lib and rpcrt4.lib) are now loaded by a #pragma comment in the relevant header file.
This means they do not need to be included in the build properties of a Visual Studio project (Linker/Input/Additional Dependencies). This change applies only to Windows.
Unit test failures – TrueType fonts.
This internally reported issue was caused by a broken font included in macOS Ventura, so this may be relevant to some customers. The issue was fixed by detecting the error and generating correct information from the font’s
Known issues in this release
There are two minor PostScript conversion issues that were found during release testing that we have decided to release with:
- When testing PostScript to PDF. A possible invalid font error when converting Type32 to Type10 (see MAKO-4325 above), but as Type32 fonts are rarely used we considered this to be low risk.
- When testing PostScript to XPS. We saw some sup-optimal pattern rendering results.
Should you encounter any issues with these conversion paths, please raise a support ticket in the usual way.
MAKO Version 6.6.3 is built for the following platforms:
- 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; for example, Alpine Linux)
- Windows (static and dynamic libs, VS 2019 (V142), x86 and x64)
- Windows (static and dynamic libs, VS 2017 (V141), x64)
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 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: