我试图编写一个小的电子应用程序,将多个pdf文件或页面嵌套到一个更大的页面上(用于在绘制大量CAD图纸时节省纸张)。
基本上来自pdfjam的unix命令pdfnup是我想要的 - 但由于不同的操作系统(Mac和Windows),我需要一个跨平台解决方案。
到目前为止,是否有人对节点/ javascript做过一些熟悉的事情?经过大量的研究后,我还没有找到合理的解决方案或库。
答案 0 :(得分:0)
感谢Zxifer的回答,我偶然发现了HummusRecipe库,该库为HummusJS项目提供了高级API。叠加方法就是我想要的。
我最终得到了这段代码:
// Maximum plottable height (915 mm) - Conversion to point
const maxPageHeight = (915 / 0.3528);
// Read files and determine width/length of plot
const fileOne = new HummusRecipe('lp.pdf', 'output1.pdf');
const fileTwo = new HummusRecipe('ls.pdf', 'output2.pdf');
let width = Math.max(fileOne.pageInfo(1).width, fileTwo.pageInfo(1).width) + 30;
// Create new pdf file
const pdfDoc = new HummusRecipe('new', 'output.pdf', {
version: 1.6,
author: 'IBB Wörn Ingenieure GmbH',
title: 'Print PDF',
subject: 'Imposition of various PDF files for optimized printing.'
});
// Get height of first pdf to generate offsett
let heightOne = fileOne.pageInfo(1).height;
// Overlay PDFs to new pdf with offset and ~ 5mm margin
pdfDoc
.createPage(width, maxPageHeight)
.overlay('lp.pdf', 15, 15)
.overlay('ls.pdf', 15, heightOne + 15)
.endPage()
.endPDF();