Add equivalent of PDFLib's SetPageFilterRange to IDistiller
Three new API functions are added to IDistiller to specify which pages in a PostScript job are processed.
setPageFilterLow() sets a lower page limit
setPageFilterHigh() sets an upper page limit
setPageFilterRange() sets a range of pages to output
Use it in this way.
CPP
const auto mako = IJawsMako::create();
IJawsMako::enableAllFeatures(mako);
auto distiller = IDistiller::create(mako);
// High & Low
distiller->setPageFilterLow(10);
distiller->setPageFilterHigh(20);
distiller->distill(
IInputStream::createFromFile(mako, "test100.ps"),
IOutputStream::createToFile(mako, "test10-20.pdf")
);
// Range
distiller->setPageFilterRange(10, 20);
distiller->distill(
IInputStream::createFromFile(mako, "test100.ps"),
IOutputStream::createToFile(mako, "rangeTest10-20.pdf")
);
// Additionally setParameter() is also available to set the lower and upper limits.
// This API expects values as strings, useful for command-line apps etc., e.g.
distiller->setParameter("PageFilterLow", "10");
distiller->setParameter("PageFilterHigh", "20");
C#
using JawsMako;
namespace MakoDistillerCheck
{
class Program
{
static void Main(string[] args)
{
var mako = IJawsMako.create();
IJawsMako.enableAllFeatures(mako);
var distiller = IDistiller.create(mako);
// High & Low
distiller.setPageFilterLow(10);
distiller.setPageFilterHigh(20);
distiller.distill(
IInputStream.createFromFile(mako.getFactory(), "test100.ps"),
IOutputStream.createToFile(mako.getFactory(), "test10-20.pdf")
);
// Range
distiller.setPageFilterRange(10, 20);
distiller.distill(
IInputStream.createFromFile(mako.getFactory(), "test100.ps"),
IOutputStream.createToFile(mako.getFactory(), "rangeTest10-20.pdf")
);
// Additionally setParameter() is also available to set the lower and upper limits.
// This API expects values as strings, useful for command-line apps etc., e.g.
distiller.setParameter("PageFilterLow", "10");
distiller.setParameter("PageFilterHigh", "20");
}
}
}
JAVA
import java.math.*;
import com.globalgraphics.JawsMako.jawsmakoIF.*;
public class MakoDistillerCheck
{
public static void main (String[] args)
{
var mako = IJawsMako.create();
IJawsMako.enableAllFeatures(mako);
var distiller = IDistiller.create(mako);
// High & Low
distiller.setPageFilterLow(BigInteger.valueOf(10));
distiller.setPageFilterHigh(BigInteger.valueOf(20));
distiller.distill(
IInputStream.createFromFile(mako.getFactory(), "test100.ps"),
IOutputStream.createToFile(mako.getFactory(), "test10-20.pdf")
);
// Range
distiller.setPageFilterRange(BigInteger.valueOf(10), BigInteger.valueOf(10));
distiller.distill(
IInputStream.createFromFile(mako.getFactory(), "test100.ps"),
IOutputStream.createToFile(mako.getFactory(), "rangeTest10-20.pdf")
);
// Additionally setParameter() is also available to set the lower and upper limits.
// This API expects values as strings, useful for command-line apps etc., e.g.
distiller.setParameter("PageFilterLow", "10");
distiller.setParameter("PageFilterHigh", "20");
}
}
Page numbers are expressed as actual page numbers, in line with the Jaws PDFLib API that this content replaces. This contrasts with all other page-related Mako APIs which use a zero-based numbering scheme.
This feature does not implement the JAWS PDFLib API SetPageFilterCallback().
MAKO-3350
IJPDS Performance improvement
In response to a customer request, the IJPDS input class has undergone significant refactoring that has resulted in an average performance increase of 71%. In particular, the method for obtaining the number of pages now returns almost immediately.
MAKO-335X
IJPDS input class: additional options to control assembly of output pages
The method to instantiate the class remains the same, but the available parameters have changed.
var input = IIJPDS.create(jawsMako);
input.setParameter("ripsetup", "cmyk");
A complete list of the available parameters follows. Items marked with an asterisk are new in this version.
IJPDSInput parameters
Parameter
Possible values
Description
ripsetup
mono
Default. Each RIP generates its own page.
cmyk
Groups RIPs together in blocks of four to generate a composite page.
riporder*
fromjob
RIPs are arranged in the order the job defines them. Default.
ordinal
RIPs are arranged sequentially in their ordinal numbering (starting from 0, for example, Rip0, Rip1, Rip2, Rip3, and so on).
0,1,2,3…
A comma-separated sequence of RIP IDs (a number from 0 to 15, or -1 if a blank is desired for that slot). This controls the sequence in which the RIPs are processed. By default, the order in which the RIP is defined by the job is followed.
0,1,3,2
Example: For CMYK output it is sometimes necessary to change the plate order (here 0,1,3,2 is specified) to obtain the correct composite output.
-1,2,-1,-1
Example: If -1 is encountered in CMYK output, then that separation is interpreted as a blank. This is useful to see a separation in a specific color. For example, specifying -1,2,-1,-1 uses the page from RIP 2 as the magenta plane with all other color planes blank. This results in a CMYK composite output where only RIP 2 comes out in a magenta color. For non-composite output, -1 is ignored, as it does not make sense to output a blank page.
Parameter
Possible values
Description
ripinterleave
Removed. Replaced by riporder.
collation*
bypage
Default. Output is ordered in page number major order. All the first pages from each RIP are output followed by the second pages, and so on.
byrip
Output is ordered by RIP major order. All the pages for RIP 1 are output followed by all the pages for RIP 2, and so on.
riprotate*
0
This denotes the rotation of a RIP separation in the output page.
The value is an angle in degrees, counter-clockwise.
Possible values are 0, 90, 180, and 270; the default value is 0.
90
180
270
stitch*
true (or 1)
Individual RIP separations are combined into one page by stitching them together. Default.
The orientation of the stitching can be controlled by the stitchhorizontal parameter.
false (or 0)
Individual RIP separations are each output as separate pages.
stitchhorizontal*
true (or 1)
The RIP separations are stitched in a horizontal orientation.
false (or 0)
The RIP separations are stitched in a vertical orientation. Default.
resourcedirectory
<path to resources folder>
Sets the directory where remote resources are located (that is, resources referenced by the IJPDS but external to it).
Distribution
MAKO Version 6.1.1 is built for the following platforms:
Linux (for Debian-based distributions, e.g., Ubuntu, Mint)
Linux (Centos)
Linux (for Debian Stretch)
Linux (for MUSL distributions, e.g., Alpine Linux)
macOS
Windows (static and dynamic libs, VS 2019 (V142), x86 and x64)
Mako supports the following programming languages:
C++ (Mako is written in C++)
C# (.Net Framework and .Net Core)
Java (built with OpenJDK11)
Python (v3.8)
The alternatives to C++ are built using SWIG (www.swig.org) which provides a translation to the native libraries, found in these distribution folders:
Linux_SWIG_(C#-Java-Python)
macOS_SWIG_(C#-Java-Python)
Windows_SWIG_(C#-Java-Python)
JavaScript errors detected
Please note, these errors can depend on your browser setup.
If this problem persists, please contact our support.