Объедините одностраничные TIFF в многостраничные TIFF, используя пакетный скрипт

У меня есть сканер документов, который может сканировать только в одну страницу, и мне нужно объединить их в многостраничные. Я знаю, что Irfanview может сделать это, однако я открыт для других вариантов.

Вход, C:\Scans:

20161001115151800_0001.tif
20161001115151800_0002.tif
...
up to
...
20161001115151800_0021.tif

...а также...:

20161002130918260_0001.tif
20161002130918260_0002.tif
...
up to
...
20161002130918260_0025.tif

Желаемый выход, C:\Output:

20161001115151800.tif
20161002130918260.tif

Я ищу решение, похожее на групповое объединение файлов TIFF на основе общего имени файла с использованием Irfanview и ImageMagick: как пакетно объединить несколько файлов TIFF в один файл TIFF в каталоге? однако я не могу понять, как реализовать первое решение в виде пакетного файла с моей файловой структурой, а во втором решении используются последовательные имена файлов, которые я не могу создать.

Любая помощь очень ценится!

1 ответ

Решение

В папке программных файлов IrfanView находится текстовый файл i_options.txt список и объяснение доступных параметров командной строки. Примеры создания многостраничных файлов TIFF также включены в этот файл.

Предлагаю дополнительно использовать опцию /tifc=X после /cmdexit в командной строке IrfanView в коде пакета ниже, чтобы определить сжатие, которое будет использоваться для многостраничных файлов TIFF.

@echo off
if not exist "C:\Output\" md "C:\Output"
for %%I in ("C:\Scans\*_*.tif") do (
    for /F "delims=_" %%J in ("%%~nI") do (
        if not exist "C:\Output\%%J.tif" (
            "%ProgramFiles(x86)%\IrfanView\i_view32.exe" /cmdexit "/multitif=(C:\Output\%%J.tif,C:\Scans\%%J_*.tif)"
        )
    )
)

/multitif опция заключена в двойные кавычки, чтобы избежать необходимости избегать скобок и получать всю опцию, передаваемую в IrfanView в виде одной строки параметра, даже если имя текущего файла содержит символ пробела или другой символ, который обычно требует использования окружающих двойных кавычек. Запустить в окне командной строки cmd /? и прочитайте хотя бы последний абзац на последней странице справки об использовании двойных кавычек.

Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.

  • echo /?
  • for /?
  • if /?
  • md /?
Другие вопросы по тегам