[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
批处理调用pdftk.exe给pdf文件逐页添加书签
  1. @echo off
  2. rem "批处理调用pdftk给无书签的pdf文件按照 书签文本每一行对应pdf每一页 添加书签(如果某页不需要书签,则书签文本对应行留空)"
  3. rem "批处理和书签文本全部保存为utf-8编码,pdftk添加到环境变量,书签文本格式txt,与pdf文件同名"
  4. chcp 65001 >nul
  5. cd /d "%~dp0"
  6. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  7. if exist "%%~ni.txt" (
  8. pdftk "%%i" dump_data_utf8 output |find "BookmarkTitle:" 1>nul
  9. if errorlevel 1 (
  10. (for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%~ni.txt"') do (
  11. if "%%b" neq "" (
  12. echo BookmarkBegin
  13. echo BookmarkTitle: %%b
  14. echo BookmarkLevel: 1
  15. echo BookmarkPageNumber: %%a
  16. )
  17. ))>report.txt
  18. pdftk "%%i" update_info_utf8 report.txt output "%%~ni_new.pdf"
  19. )
  20. ) else (
  21. echo 未找到文本 [%%~ni.txt]
  22. )
  23. )
  24. del report.txt 2>nul
  25. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 17# ppll2030


   6、7行的两种方式,%1会改变工作路径,而set /p却不会,%1含有空格加引号,而set /p不知道情况如何,而后面又使用 %~dp0pdftk,感觉空格、引号与路径有点混乱,可提供给楼主一种方式就好。如:第7行输入一个含有空格的路径,而没有引号,后续会出错。
bat小白,请多指教!谢谢!

TOP

回复 6# aloha20200628


   
大佬,代码第2行判断是否存在pdf文件会失败吧
bat小白,请多指教!谢谢!

TOP

回复 24# aloha20200628


   *.pdf 通配结果为空,就不执行do了
bat小白,请多指教!谢谢!

TOP

返回列表