批处理调用pdftk.exe给pdf文件逐页添加书签- @echo off
- rem "批处理调用pdftk给无书签的pdf文件按照 书签文本每一行对应pdf每一页 添加书签(如果某页不需要书签,则书签文本对应行留空)"
- rem "批处理和书签文本全部保存为utf-8编码,pdftk添加到环境变量,书签文本格式txt,与pdf文件同名"
- chcp 65001 >nul
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
- if exist "%%~ni.txt" (
- pdftk "%%i" dump_data_utf8 output |find "BookmarkTitle:" 1>nul
- if errorlevel 1 (
- (for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%~ni.txt"') do (
- if "%%b" neq "" (
- echo BookmarkBegin
- echo BookmarkTitle: %%b
- echo BookmarkLevel: 1
- echo BookmarkPageNumber: %%a
- )
- ))>report.txt
- pdftk "%%i" update_info_utf8 report.txt output "%%~ni_new.pdf"
- )
- ) else (
- echo 未找到文本 [%%~ni.txt]
- )
- )
- del report.txt 2>nul
- pause
复制代码
|