【问题标题】:Combine pdf based on filename with pdfs in subfolders with same name将基于文件名的 pdf 与同名子文件夹中的 pdf 合并
【发布时间】:2021-03-16 22:13:40
【问题描述】:

我正在尝试将基于文件名 (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 更可取。

【问题讨论】:

  • 请提供您编写的代码的minimal reproducible example,以执行您在问题中提出的任务,但没有这样做。除此之外,请提供任何错误代码和其他调试信息。我们可以用来帮助您。
  • 您不能单独使用批处理文件来执行此操作。您将不得不使用某种脚本。你知道什么? Python?珀尔?哇?

标签: batch-file pdf pdftk


【解决方案1】:

在历经磨难和磨难后回答自己

@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%    

主要来源:

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2023-03-17
    • 2018-10-08
    • 2017-03-20
    • 2021-02-11
    相关资源
    最近更新 更多