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

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

[复制链接]
 楼主| 发表于 2023-10-2 18:40:50 | 显示全部楼层
回复 30# 77七 我试了下,不成功,还是没有书签,,77 你可以这样测试下看看,用excel 新建表格随便编辑下,另存为PDF 文件,命名1.pdf , 然后再用excel 编辑下另存为PDF,命名2.pdf, 把这两个合并后,你查看下是否有书签。
发表于 2023-10-2 20:02:26 | 显示全部楼层
回复 31# feiyan



http://bcn.bathome.net/s/tool/index.html?key=pdfunite

  1. pdfunite 1.pdf 2.pdf out.pdf
复制代码




试试其它工具吧
 楼主| 发表于 2023-10-3 11:14:44 | 显示全部楼层
回复 32# 77七 下载了,不会安装,自己捣鼓了几下,弄不明白,感觉是适合linux 系统吧
发表于 2023-10-3 17:38:39 | 显示全部楼层
回复 33# feiyan


32楼代码保存为 test.bat 和待处理的pdf文件放在同一个目录下
下载 pdfunite 之后解压缩,把exe、dll文件和待处理的pdf文件放在同一个目录下
执行 test.bat 脚本
 楼主| 发表于 2023-10-3 17:50:26 | 显示全部楼层
回复 34# Batcher 版主,你看合并PDF 文件后,怎么能让合并后的pdf文件带上书签,我试了很多办法都不成功,你有好办法吗?
发表于 2023-10-4 08:16:24 | 显示全部楼层
回复 35# feiyan


    请向32楼回复测试结果
 楼主| 发表于 2023-10-4 11:12:03 | 显示全部楼层
回复 32# 77七 这个实验下来,还是没有书签
发表于 2023-10-4 13:00:36 | 显示全部楼层
回复 37# feiyan


   你把保留书签失败的文件,和成功的文件,每样传两个到网盘发上来,看看他们有什么区别
 楼主| 发表于 2023-10-4 17:37:11 | 显示全部楼层
回复 38# 77七 hi 77,是这样的,我没有找到你说的网盘,没法上传文件,我把这个事情描述下,我使用excel ,随便输入几个数字,另存为PDF 文件,这样创建的几个PDF 文件,使用批处理合并,合并后就是没有书签,我就没有成功的案例来上传。后来,经过我的测试,我需要在合并前,为每一个PDF 文件手动添加书签,这样运行批处理合并后才能保留书签。但是我使用pdf 软件来手动来合并 ,就会自动生成书签。
发表于 2023-10-4 18:20:31 | 显示全部楼层
回复 39# feiyan


   那就手动合并吧。大概理解 :  你说的书签可能和pdf文件的书签,是两回事,只不过你用其它软件,其它软件将它视为书签。
 楼主| 发表于 2023-10-4 21:19:23 | 显示全部楼层
回复 40# 77七 我说的书签,指的是pdf 软件上的书签按钮显示的数据,点击书签就可以直接跳转到对应的页面上,书签名称一般和文件名称相同。
 楼主| 发表于 2023-10-4 21:40:31 | 显示全部楼层
回复 40# 77七 [img]示意图  [/img]
发表于 2023-10-4 22:16:26 | 显示全部楼层
回复 42# feiyan


   合并前,pdf文件有书签吗?
 楼主| 发表于 2023-10-5 11:09:04 | 显示全部楼层
回复 43# 77七 没有,合并前,pdf 文件没有书签
发表于 2023-10-5 12:34:01 | 显示全部楼层
本帖最后由 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:40 , Processed in 0.021295 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表