首页 > 解决方案 > 将基于文件名的 pdf 与同名子文件夹中的 pdf 合并

问题描述

我正在尝试将基于文件名 (IMG_2.pdf) 的 pdf 与位于与带有填充 (IMG_2.pdfX) 的 pdf 同名的子文件夹中的所有 pdf 结合起来。

子文件夹可以在第一个子文件夹 (22.pdfX) 中包含以 pdf 命名的附加子文件夹(如 22.pdfX),并具有附加的 pdf(如 IMGk.pdf)。

C:。
│ IMG_2.pdf
├───IMG_2.pdfX
│ │ 22.pdf
│ └───22.pdfX⠀
│ IMGk.pdf

这显示了一个 pdf 及其子文件夹的树,有数百个具有这种结构的 PDF。

对于 IMG_2.pdf,输出应该是一个 pdf,它将所有其他 pdf 合并到此文件或新文件中,对于源目录 (pdf) 中的所有其他 pdf,依此类推。

试过 pdftk 但卡住了。欢迎使用 linux 或 windows 上的任何解决方案,windows 更可取。

标签: batch-filepdfpdftk

解决方案


历尽千辛万苦来回答自己

@echo off    
rem run cmd with \u -for utf 16    
setlocal EnableDelayedExpansion EnableExtensions    
SET "SourceParentDir=C:\Export"    
set back=%cd%    
    
set "files="    
set "originalPDF="    
    
rem loop through subdirectories    
for /d %%i in (%SourceParentDir%\*) do (    
        
    rem get filepath of master pdf    
    set "originalPDFpath=%%~i"    
    set "originalPDFpath=!originalPDFpath:~0,-1!.pdf"    
        
    rem get filename of master pdf    
    set "originalPDF=%%~nxi"    
    set "originalPDF=!originalPDF:~0,-1!.pdf"    
        
    rem traverse subdirectories    
    cd "%%i"    
        
    rem get list of pdf files    
    (for /R %%a in (*.pdf) do (    
        set "files=!files! "%%~fa""    
    )    
        
    rem combine pdf files    
    pdftk "!originalPDFpath!" !files! cat output "c:\test\!originalPDF!"        
    set "files="    
    )    
)    
cd %back%    

主要来源:


推荐阅读