在Woovi,我们允许我们的客户使用任意大小上传文档,而无需他们减少侧面的文件大小。
因此,在打开帐户时,我们需要对这些文档进行此减少。为此,我们使用Ghostscript与Node.js创建了一个自动解决方案来处理压缩。
import { existsSync } from 'fs';
import fs from 'fs/promises';
import path from 'path';
import { promisify } from 'util';
const execPromise = promisify(exec);
const cwd = process.cwd();
const compressPdf = async (base64: string): Promise<string> => {
try {
const tempFolder = path.join(cwd, "temp");
const hasTempFolder = existsSync(tempFolder);
if (!hasTempFolder) {
await fs.mkdir(tempFolder);
}
const originalFilePath = path.join(cwd, "temp", "original.pdf");
const compressFilePath = path.join(cwd, "temp", "compress.pdf");
await fs.writeFile(originalFilePath, base64, "base64");
await execPromise(
`gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="${compressFilePath}" ${originalFilePath}`
);
const compressFileBase64 = await fs.readFile(compressFilePath, "base64");
await fs.unlink(originalFilePath);
await fs.unlink(compressFilePath);
return compressFileBase64;
} catch (error) {
throw error;
}
};
上面的功能创建一个临时文件夹来存储已处理的文件并使用Ghostscript参数执行压缩。原始文件保存在此临时文件夹中,Ghostscript用于生成文件的压缩版本。然后,将压缩文件读取并转换为base64字符串。
Woovi是一家创业公司,使购物者能够按照自己的意愿付款。为了实现这一目标,Woovi为商人提供即时付款解决方案接受订单。
如果您想与我们合作,我们是hiring!
照片