按照文件名的第一部分合并PDF文件 - 如何自动化?

问题描述:

我能够修改我在这里找到的代码VBA的代码,从excel文件生成PDF文件。运行此编码后,结果是我将有多个PDF文件,后缀为"-index.pdf" - (例如,875458-indexl.pdf)我可以将后缀更改为任何内容。按照文件名的第一部分合并PDF文件 - 如何自动化?

我将从一个zip文件中提取另一组PDF文件,其文件名与875458.pdf具有相同的文件名。

最后,在一个文件夹中,会有多对文件,如下所示。

875458.pdf 
875458-index.pdf 
875460.pdf 
875460-index.pdf 
954784.pdf 
954784-index.pdf 

我的目标是要找到一个W¯¯

唉每对文件合并成一个文件。

最终结果如下。

(Indexl文件是第一页)

875458.pdf 
875460.pdf 
954784.pdf 

我下载PDFTK,但我不知道确切的脚本是如何工作的,即使我看到一些样品,我只是不明白这一点。 ..

如果有人可以好心地给我以下,我将非常感激。

1)计划,我应该已经安装 2)如何命名batchbash文件,并在保存文件 3)如何触发脚本运行

谢谢。

我找到了合并/加入PDFtk文件的命令on this page

setlocal enabledelayedexpansion 
for %%# in (*-index.pdf) do (
    set n=%%~n# 
    set n=!n:~,-6! 
    pdftk A=!n!.pdf B=%%# cat B A output C:\export\done\!n!.pdf 
) 

这将得到每个* -index.pdf并将其与其各自的* .pdf合并。

+0

太棒了!但我现在不知道该怎么做这个..但我会谷歌,并找出...但请随时让我知道如何运行此命令行。我刚刚安装了Pdftk pro ...再次感谢您给我一个起点! –

+0

@EunNamkung只需将其保存为.pdf文件目录中的.bat文件,然后双击即可开始。确保PDFtk也位于目录或\ Windows \ System32中。 – Regejok

+0

谢谢,但不工作...好吧,谢谢你的时间!希望我会得到启发,并理解我做得不对! –

我找到了一个例子如下。当我执行此操作时,我至少会收到以下消息。所以我想我只需要调整下面的脚本以获得正确的文件名。


  1. 错误消息执行此批处理文件时

文件未找到 完成。输入错误,所以没有输出创建


  1. 当文件被保存和文件名
  2. C:\合并 merge.bat(该文件包含下面的代码示例) 845499.pdf 845499-index。PDF 845502.pdf 845502-index.pdf


    1. PDFTK设置
    2. 我安装PDFTK亲,它显示了当我“PATH” 中的命令行,我也复制pdftk.exe在C:\合并和c:\ Windows \ System32下


      1. 代码示例


        @回响 SETLOCAL EnableDelayedExpansion

        REM初始化(删除) “lastFile” 和 “的fileList” 变量 组 “lastFile =” 组 “的fileList =”

        rem下一行获得“dir/B”命令的输出,显示文件名只有 rem“for/F”命令执行dir,获取输出并将每个l在“%% a”中的“”之前的第一部分以及“%% a”中的* rest *(包括进一步的“”)在第二部分中的“ %% b”的

        为/ F “令牌= 1 * delims = _” %%一个在( 'DIR/b _KM_。*')做(

        REM如果基本文件名变更。 .. 如果 “%%一个” 非等效 “!lastFile!”(

        rem Process previous file list; 
            rem this "if" is just to avoid process the empty list the first time 
            if defined fileList (
            pdftk !fileList! output !lastFile!.pdf 
        ) 
        
            rem Reinitialize the new list 
            set "lastFile=%%a" 
            set "fileList=%%a_%%b" 
        

        )其他(

        rem Append this file to current list 
            set "fileList=!fileList! %%a_%%b" 
        

        REM过程中的最后名单 PDFTK!的fileList!输出!lastFile!.pdf

      开始=>
    开始=>
开始=>