我能够修改我在此处找到的示例VBA
代码,以生成PDF
文件中的excel
个文件。在此编码运行后,结果是我将有多个PDF
个文件,后缀为"-index.pdf"
- (例如,875458-indexl.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)如何命名batch
或bash
文件,以及保存文件的位置
3)如何触发脚本运行
谢谢。
答案 0 :(得分:0)
我找到了使用PDFtk on this page合并/加入两个pdf文件的命令。
'as an array formula with CSE in H2
=--LEFT(INDEX(A$2:INDEX(A:A, MATCH(1E+99, A:A)), MATCH(0, COUNTIF(H$1:H1, LEFT(A$2:INDEX(A:A, MATCH(1E+99, A:A)), 6)&""), 0)), 6)
'as a standard formula in I2
=MAX(INDEX((B$2:INDEX(F:F, MATCH(1E+99, F:F)))-(--LEFT(A$2:INDEX(A:A, MATCH(1E+99, F:F)), 6)<>H2)*1E+99, , ))
'as a standard formula in J2
=INDEX(A$1:F$1, AGGREGATE(15, 6, COLUMN(A:F)/((--LEFT(A$2:INDEX(A:A, MATCH(1E+99, F:F)), 6)=H2)*COUNTIF(I2, A$2:INDEX(F:F, MATCH(1E+99, F:F)))), 1))
这将得到每个* -index.pdf并将其与各自的* .pdf合并。
答案 1 :(得分:0)
我找到了一个例子如下。当我执行此操作时,我,至少得到以下消息。所以我想我只需要调整下面的脚本以获取正确的文件名。
找不到档案 完成。输入错误,因此没有创建输出
C:\合并 merge.bat(这个文件包含下面的代码示例) 845499.pdf 845499-index.pdf 845502.pdf 845502-index.pdf
我安装了pdftk pro,它显示当我在命令行中执行“PATH”时,我还在c:\ merge和c:\ windows \ system32
中复制了pdftk.exe代码示例
@echo off setlocal EnableDelayedExpansion
rem初始化(删除)“lastFile”和“fileList”变量 设置“lastFile =” 设置“fileList =”
rem下一行获取“dir / B”命令的输出,该命令仅显示文件名 rem“for / F”命令执行dir,获取输出并将每行分成两个“标记”(“%% a”和“%% b”) rem在“%% a”中的“”之前的第一部分和“%% b”中的* rest *(包括进一步的“”)
for / F“tokens = 1 * delims = _”%% a in('dir / B _KM _ 。*')do(
rem如果基本文件名改变了...... 如果“%% a”neq“!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