如何将多个文件夹中的pdf文件转换为与文件夹名称匹配的多个pdf文件

如何将多个文件夹中的pdf文件转换为与文件夹名称匹配的多个pdf文件

我有多个文件夹,每个文件夹包含多个 pdf 图像文件,如下所示:

  Folder 1 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  Folder 2 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  Folder 3 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  ...
  Folder 94
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf 

有没有办法创建一种脚本,将每个文件夹一次性输出为一个 pdf 文件,如下所示:

Folder1.pdf
Folder2.pdf
Folder3.pdf
...
Folder94.pdf

答案1

将文件夹中的 PDF 文件合并为与文件夹名称匹配的一个 PDF 文件

由于您有一个将所有 JPG 文件转换为 PDF 文件的解决方案,因此您需要一个解决方案,将文件夹中的所有 PDF 文件合并为一个按文件名按时间顺序合并的单个 PDF 文件。

您可以使用PDFtk 免费及其 CLI PDFtk使用cat批处理脚本中的参数自动执行将文件夹内的所有 PDF 文件转换为以文件夹名称作为文件名的单个 PDF 的操作。

“PDFtk Free 是我们友好的图形工具,用于快速合并和拆分 PDF 文档和页面。您可以随意免费使用。”

“高级用户:PDFtk Free 附带我们的命令行工具 PDFtk Server。因此,您可以同时获得 PDFtk 的 GUI 和命令行界面!”


批处理脚本

笔记:SourceParentDir=值将是您需要合并的 PDF 文件所在子文件夹的完整路径。

@ECHO OFF

SET "SourceParentDir=C:\Root\Parent\Folder"
FOR /R "%SourceParentDir%" %%A IN (.) DO (
    IF /I NOT [%%~A]==[%SourceParentDir%\.] pdftk "%SourceParentDir%\%%~NA\*.pdf" cat output "%SourceParentDir%\%%~NA.pdf"
    )
PAUSE
EXIT

批处理脚本(逆序)

@ECHO OFF

SET "SourceParentDir=C:\Root\Parent\Folder"
FOR /R "%SourceParentDir%" %%A IN (.) DO (
    IF /I NOT [%%~A]==[%SourceParentDir%\.] pdftk "%SourceParentDir%\%%~NA\*.pdf" cat output "%SourceParentDir%\temp.pdf"
    IF EXIST "%SourceParentDir%\temp.pdf" pdftk "%SourceParentDir%\temp.pdf" cat end-1 output "%SourceParentDir%\%%~NA.pdf"
    IF EXIST "%SourceParentDir%\%%~NA.pdf" IF EXIST "%SourceParentDir%\temp.pdf" DEL /Q /F "%SourceParentDir%\temp.pdf"
    )
PAUSE
EXIT

更多资源

  • 支持/R

    FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
    
        Walks the directory tree rooted at [drive:]path, executing the FOR
        statement in each directory of the tree.  If no directory
        specification is specified after /R then the current directory is
        assumed.  If set is just a single period (.) character then it
        will just enumerate the directory tree.
    
  • 如果

  • 批量替换 (FOR /?)

    此外,FOR 变量引用的替换功能也得到了增强。现在您可以使用以下可选语法:

    %~nI        - expands %I to a file name only
    
  • pdftk.exe --Help

          cat [<page ranges>]
                 Assembles (catenates) pages from input PDFs to create a new
                 PDF. Use cat to merge PDF pages or to split PDF pages from
                 documents. You can also use it to rotate PDF pages. Page
                 order in the new PDF is specified by the order of the given
                 page ranges. Page ranges are described like this:
    
                 <input PDF handle>[<begin page number>[-<end page num-
                 ber>[<qualifier>]]][<page rotation>]
    

相关内容