首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何批量合并PDF文档

如何批量合并PDF文档
EN

Stack Overflow用户
提问于 2011-08-19 01:03:51
回答 2查看 8.4K关注 0票数 0

我正在寻找一个批处理文件或vbscript,将合并像pdf文件名。应该合并的文件将具有相同的文件名,直到第一个“。我有包含大约4000个文件的整个文件夹。文件扩展名与以下格式匹配

111111111111111111.22222222.pdf ==> 1是任意16个数字0-9,2是任意8个数字0-9

我想批量合并文件夹中的相似文件。到第一个文件名相同的所有文件都应该被合并“。

示例:111111111111111111.25484686.pdf应与1111111111111111.54874568合并,而5555555555555555.78468767应与5555555555555555.48687654和55555555555555.68974582合并

这些文件可以输出到另一个文件夹,但不是必需的。输出后的新文件名也无关紧要,只要它工作即可。

我知道有一些软件可以处理这个问题,但是拖放文件来合并它们会花费太长的时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-01 12:48:05

谷歌搜索发现了http://www.pdfsam.org/ -一个提供免费的PDF合并实用程序的网站,它有一个命令行界面(以及一个图形用户界面)。我不知道这有多好用。请确保您获得了此站点提供的免费实用程序,而不是在同一站点上宣传的竞争对手的解决方案。

市面上还有很多其他的实用程序,大多数都是收费的。

一旦您弄清楚如何使用您选择的实用程序的命令行界面,您就可以使用如下所示的批处理文件来动态构建要合并的文件列表。(此批处理代码未经测试。这个概念肯定会起作用,但可能需要进行一些调试)

代码语言:javascript
复制
@echo off
setlocal enableDelayedExpansion

:: This initial loop determines which files need to be merged
:: and then calls :merge for each unique set of files. This top
:: loop should work no matter what utility you choose.
set "current="
set cnt=0
:: for current directory, LOC should be empty (or .\)
:: for any other path, LOC should include \ at end
set "LOC="
for %%F in ("%LOC%*.*.pdf") do (
  for /f "tokens=1,* delims=." %%A in ("%%~nF") do (
    if "%%A" neq "!current!" (
      if defined current call :merge
      set cnt=0
      set current=%%A
    )
    set /a cnt+=1
    set pdf.!cnt!=%%~fF
  )
exit /b


:merge
:: This routine should build the command line to merge the current
:: file list contained in pdf.1 through pdf.!cnt!
::
:: Below is code to build a hypothetical file list to be used on
:: the merge command line. This will obviously need to be modified
:: based on the syntax of your chosen merge utility.
::
  set "list="
  for /l %%N in (1 1 !cnt!) do set list=!list! -f "!pdf.%%N!"
::
::
:: The rest is up to you!
::
exit /b
票数 3
EN

Stack Overflow用户

发布于 2014-03-12 18:25:11

这个软件,Dysprosium,可以批量合并,而不需要编写批处理文件,也不需要拖放,而且它是免费获取和使用的。如预期的那样,将所有批次放在同一个文件夹中就足够了。但是,您需要具有与批处理中的文件大小成比例的硬件资源。

它是一个简单、轻便的"JAR“文件,无需安装在操作系统上即可移植。

由于它是基于Java的软件,因此您还需要增加可用于Java运行时的Java内存。Java需要占用一部分物理内存来渲染大型PDF文件。这篇wiki解释了如何增加Java运行时内存。

(IMHO)使用现成的软件,您不能合并总大小超过3 3GB 3.5 3GB的PDF批。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7111273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档