PDF-страницы в PNG и обратно в PDF в горячей папке с помощью скрипта

По соображениям безопасности я хочу разложить PDF-файлы и собрать их вместе (напечатать их и сканировать обратно в). Я хочу предложить это своим пользователям, поэтому я хотел бы написать своего рода решение hotfilder. При написании этого вопроса я почти разобрался сам. Есть только один глюк: convert (команда конвертировать один pdf-файл во множество png-страниц) называет выходные файлы без начальных нулей. pdftk (команда для объединения pdf-страниц в один pdf-документ) сортирует файлы по-разному, поэтому мой новый PDF-файл выглядит следующим образом: страница 1 страница 10 страница 100 страница 11 страница 12 страница 2

Вы можете мне с этим помочь?

Вот мой сценарий:

SETLOCAL
CHCP 1252
SET WORKFOLDER=C:UsersmyselfDocuments
IF NOT EXIST "%WORKFOLDER%" MD "%WORKFOLDER%"
IF NOT EXIST "%WORKFOLDER%png" MD "%WORKFOLDER%png"


:get_filenames
C:
CD "%WORKFOLDER%"
FOR %%X IN (*.pdf) DO (
convert -density 300 -quality 100 "%%~nX.pdf" "%WORKFOLDER%png%%~nX.png"
CD "%WORKFOLDER%png%
mogrify -format pdf *.png
"C:Program Files (x86)PDFtkbinpdftk.exe" "%WORKFOLDER%png*.pdf" cat output "%WORKFOLDER%%%~nX_sicher.pdf"
)

1 ответ
1

исправил это как-то. Может быть, не элегантно, но работает. Вот код. Приветствуются предложения сделать это более плавным.

SETLOCAL EnableDelayedExpansion
CHCP 1252
SET WORKFOLDER=C:UsersMyselfDocuments
IF NOT EXIST "%WORKFOLDER%" MD "%WORKFOLDER%"
IF NOT EXIST "%WORKFOLDER%png" MD "%WORKFOLDER%png"
C:
CD "%WORKFOLDER%"
FOR %%X IN (*.pdf) DO (
convert -density 300 -quality 100 "%%~nX.pdf" "%WORKFOLDER%pngoutput_%%02d_%%.png"
CD "%WORKFOLDER%png"
mogrify -format pdf *.png
CD "%WORKFOLDER%"
"C:Program Files (x86)PDFtkbinpdftk.exe" "%WORKFOLDER%png*.pdf" cat output "%WORKFOLDER%%%~nX_secure.new"
RENAME "%%~nX.pdf" "%%~nX.org"
DEL "%WORKFOLDER%png*.*" /F /S /Q
GOTO start1
)

CD "%WORKFOLDER%"
RENAME *.org *.pdf
RENAME *.new *.pdf

PAUSE

Можно также сжать / оптимизировать выходные PDF-файлы с помощью чего-то вроде этого (пока не работает):

FOR %%X IN (*.pdf) DO (
"C:Program Filesgsgs9.26bingswin64c.exe" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="%%~nX_komprimiert.pdf" "%%~nX.pdf"
)

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *