[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理按照顺序合并PDF 文件

1.在当前目录有多个文件夹,每个文件夹内有多个PDF 文件。
2.想把每个文件内的多个pdf 文件合并成一个pdf,存在在这个文件夹内,用这个文件夹名来命名这个合并PDF 文件。

举例,文件夹名称:S123     包含(1.pdf, 2.pdf, 3.pdf, 4.pdf,5.pdf)等多个pdf 文件,要求合并后文件名称是S123,
在当前目录下,这样类似的文件夹有多个。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 77七 于 2023-10-29 19:11 编辑

回复 52# yilianqiumeng


  
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. for /f "delims=" %%i in ('dir /b /ad') do (
  5.     pushd "%%i"
  6.     echo 正在处理文件夹:%%i
  7.     "d:\新建文件夹\pdftk.exe" *.pdf cat output "%%~nxi.pdf"
  8.     popd
  9. )
  10. pause
复制代码
可能你的path的路径没设置对吧,修改了下5楼代码,在代码中直接写pdftk路径,自行修改为实际路径,批处理文件放在 “当前目录”下
bat小白,请多指教!谢谢!

TOP

回复 51# 77七


   我的问题和他的一样的:就是一键把每个文件夹内的pdf文件合并起来,手动合并太慢了!请大神指教!谢谢

1.在当前目录有多个文件夹,每个文件夹内有多个PDF 文件。
2.想把每个文件内的多个pdf 文件合并成一个pdf,存在在这个文件夹内,用这个文件夹名来命名这个合并PDF 文件。
举例,文件夹名称:S123     包含(1.pdf, 2.pdf, 3.pdf, 4.pdf,5.pdf)等多个pdf 文件,要求合并后文件名称是S123,
在当前目录下,这样类似的文件夹有多个。

TOP

回复 50# yilianqiumeng


   请完整描述一下需求吧,不知道你具体需要怎么合并
bat小白,请多指教!谢谢!

TOP

回复 49# 77七


    不行,我用了5楼的代码也只是运行pdftk软件,不会自动合并的。请大神看看有没有别的方法吧?给指导一下!谢谢

TOP

回复 48# yilianqiumeng


   你用的哪一楼的代码?我写的只是满足了楼主的按顺序要求,你试一下4、5楼站长的代码
bat小白,请多指教!谢谢!

TOP

回复 21# 77七


    大神,我用批处理合并pdf文件,合并不了啊,只是运行了pdftk软件,不能自动合并啊?

TOP

我试了一下,不行啊?只是把pdftk软件运行打开了,它不会自动合并pdf文件呀?请大神看看是什么原因?

TOP

回复 45# 77七 感谢,程序测试OK

TOP

本帖最后由 77七 于 2024-1-13 13:25 编辑

回复 44# feiyan


  批处理调用pdftk 给无书签的pdf文件添加一个 文件名书签
  1. @echo off
  2. rem 批处理保存为utf-8编码格式
  3. chcp 65001 >nul
  4. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  5.         pdftk "%%i" dump_data_utf8 output |find "BookmarkTitle:" 1>nul
  6.         if errorlevel 1 (
  7.                 >report.txt (
  8.                         echo BookmarkBegin
  9.                         echo BookmarkTitle: %%~ni
  10.                         echo BookmarkLevel: 1
  11.                         echo BookmarkPageNumber: 1
  12.                 )
  13.                 pdftk "%%i" update_info_utf8 report.txt output $.pdf
  14.                 move $.pdf "%%i"
  15.         )
  16. )
  17. del report.txt
复制代码

2024年1月13号更新

  1. @echo off
  2. rem 批处理保存为utf-8编码格式
  3. chcp 65001 >nul
  4. rem 仅给无书签的pdf文件添加文件名作为书签(part) ,所有文件添加(all)
  5. set "c=all"
  6. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  7. pdftk "%%i" dump_data_utf8 output >$
  8. setlocal
  9. if /i "%c%" equ "all" (
  10. call :1 "%%i"
  11. ) else if /i "%c%" equ "part" (
  12. find "BookmarkTitle:" <$ 1>nul || call :1 "%%i"
  13. )
  14. endlocal
  15. )
  16. del $;report.txt 2>nul
  17. pause & exit
  18. :1
  19. for /f "tokens=1* delims=[]" %%a in ('find /n "NumberOfPages: " ^<$') do (
  20. set #%%a=1
  21. )
  22. (for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<$') do (
  23. echo=%%b
  24. if defined #%%a (
  25. echo BookmarkBegin
  26. echo BookmarkTitle: %~n1
  27. echo BookmarkLevel: 1
  28. echo BookmarkPageNumber: 1
  29. )
  30. ))>report.txt
  31. pdftk "%~1" update_info_utf8 report.txt output $.pdf
  32. move $.pdf "%~1"
  33. exit /b
复制代码
bat小白,请多指教!谢谢!

TOP

回复 43# 77七 没有,合并前,pdf 文件没有书签

TOP

回复 42# feiyan


   合并前,pdf文件有书签吗?
bat小白,请多指教!谢谢!

TOP

回复 40# 77七 [img]示意图  [/img]

TOP

回复 40# 77七 我说的书签,指的是pdf 软件上的书签按钮显示的数据,点击书签就可以直接跳转到对应的页面上,书签名称一般和文件名称相同。

TOP

回复 39# feiyan


   那就手动合并吧。大概理解 :  你说的书签可能和pdf文件的书签,是两回事,只不过你用其它软件,其它软件将它视为书签。
bat小白,请多指教!谢谢!

TOP

返回列表