0
点赞
收藏
分享

微信扫一扫

合并多PDF文件

需求

因某种缘由,需要将多个PDF文件合并成一个,方便打印。

分析

将文件夹里面的PDF文件名称遍历出来,将所有的文件合并成一个文件即可。

为求简单实现,使用node.js实现就好。

运行环境

node v16.17

pnpm v8.5

开发步骤

一.搭建工程

mkdir multil-pdf-to-one
cd multil-pdf-to-one
pnpm init

二.安装依赖

pnpm add pdf-merger-js
pnpm add fs-extra

三.编写代码

1.将指定目录下的PDF文件名遍历并存如数组中

// src/index.js
const PDFMerger = require("pdf-merger-js");
const { opendir, ensureDir } = require("fs-extra");
const { join, extname } = require("path");

const scanDir = async (searchPath) => {
  const pdfPaths = [];
  try {
    const dir = await opendir(searchPath);
    for await (const dirent of dir) {
      if (dirent.isFile) {
        extname(dirent.name).toLocaleLowerCase() === ".pdf" &&
          pdfPaths.push(join(searchPath, dirent.name));
      }
    }
  } catch (err) {
    console.error(err);
  }
  return pdfPaths;
};

2.进行合并操作

// src/index.js
const PDFMerger = require("pdf-merger-js");
const { opendir, ensureDir } = require("fs-extra");
const { join, extname } = require("path");

const doMerge = async () => {
  const pdfPaths = await scanDir("src/0728");
  const merger = new PDFMerger();
  for (const ele of pdfPaths) {
    await merger.add(ele);
  }

  await ensureDir("dist");
  await merger.save("dist/merged-0728.pdf");
};

3.完整的代码

// src/index.js
const PDFMerger = require("pdf-merger-js");
const { opendir, ensureDir } = require("fs-extra");
const { join, extname } = require("path");

const scanDir = async (searchPath) => {
  const pdfPaths = [];
  try {
    const dir = await opendir(searchPath);
    for await (const dirent of dir) {
      if (dirent.isFile) {
        extname(dirent.name).toLocaleLowerCase() === ".pdf" &&
          pdfPaths.push(join(searchPath, dirent.name));
      }
    }
  } catch (err) {
    console.error(err);
  }
  return pdfPaths;
};

const doMerge = async () => {
  const pdfPaths = await scanDir("src/0728");
  const merger = new PDFMerger();
  for (const ele of pdfPaths) {
    await merger.add(ele);
  }

  await ensureDir("dist");
  await merger.save("dist/merged-0728.pdf");
};

doMerge();

附上一张漂亮的代码截图

合并多PDF文件_多pdf文件

4.运行代码

node src/index.js


举报

相关推荐

0 条评论