40 lines
946 B
JavaScript
40 lines
946 B
JavaScript
|
// Script to create a PDF from JPEG2000 images.
|
||
|
// Each image be put on its own page.
|
||
|
// This script can be used to create files to test JPEG2000 support in PDF viewers.
|
||
|
|
||
|
var doc = new PDFDocument();
|
||
|
|
||
|
function addJPXImage(filename, w, h) {
|
||
|
return doc.addRawStream(
|
||
|
readFile(filename),
|
||
|
{
|
||
|
Type: "XObject",
|
||
|
Subtype: "Image",
|
||
|
Width: w,
|
||
|
Height: h,
|
||
|
Filter: "JPXDecode"
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function addJPXPage(filename) {
|
||
|
var image = new Image(filename);
|
||
|
var w = image.getWidth();
|
||
|
var h = image.getHeight();
|
||
|
var mediabox = [0, 0, w, h];
|
||
|
var resources = { XObject: { I: addJPXImage(filename, w, h) } };
|
||
|
var contents = "q " + w + " 0 0 " + h + " 0 0 cm /I Do Q";
|
||
|
doc.insertPage(-1, doc.addPage(mediabox, 0, resources, contents));
|
||
|
}
|
||
|
|
||
|
var i, n = scriptArgs.length;
|
||
|
if (n < 1) {
|
||
|
print("usage: mutool run jpx-to-pdf.js file.jpx ...");
|
||
|
quit();
|
||
|
}
|
||
|
for (i = 0; i < n; ++i) {
|
||
|
addJPXPage(scriptArgs[i]);
|
||
|
}
|
||
|
|
||
|
doc.save("out.pdf", "ascii,pretty");
|