Как я могу растеризировать весь текст в PDF?

Проблема состоит в том, что Вы читаете файл с двумя экземплярами read - один для чтения имени файла другое для получения ответа. Следовательно read ожидание ответа ест каждое второе имя файла, и необходимо надеяться, что список файлов не похож:

some_throuwaway_stuff
foo
very_important_file.txt
Yes
some_throuwaway_stuff
foo

Ваш сценарий должен, вероятно, посмотреть что-то как:

#!/bin/bash
echo "Give directory to search for ASCII text files"
read direct
exec 3<&0
find "$direct" -type f |
while IFS= read -r name; do
    echo "========================================"
    if file "$name" | grep ASCII; then
        echo "----------------------------------------"
        head "$name";
        echo "----------------------------------------"
        echo "Do you want to delete this file?"
        read -u 3 want
        case $want in
            YES|Yes|yes|Y|y)
                rm "$name"
                ;;
            *)
                ;;
        esac
    fi
done

Заметьте перенаправление exec 3<&0 который будет питаться регулярный stdin к дескриптору файла 3, который затем проверяется в цикле на ответ от пользователя.

Тем не менее rm -i вероятно более оптимальный вариант.

3
26.04.2015, 20:22
2 ответа

Можно проверить, не загрязнены ли также PDF-файлы с изображениями. Сначала конвертируйте PDF в (многостраничный) TIFF, например, с помощью ghostscript:

gs -sDEVICE=tiffg4 -o sample.tif sample.pdf

Затем конвертируйте TIFF в PDF, например:

tiff2pdf -z -f -F -pA4 -o sample-img.pdf sample.tif

В результате получится PDF-файл, страницы которого будут представлять собой изображения, а не текст.

В качестве альтернативы, если ваша система поддерживает печать файлов TIFF, попробуйте распечатать их напрямую.

Существует также возможность pdf2ps для преобразования PDF в PS, что если работает, то, скорее всего, будет предпочтительнее.

0
27.01.2020, 21:41

Я сделал это так, как Дмитрий описал в комментариях , используя pdf2psи ps2pdf.

Сначала я преобразовал свой PDF-файл в формат .psс помощью команды

pdf2ps my_file.pdf my_file.ps

А затем преобразовал его обратно в формат pdf

ps2pdf my_file.ps my_file.pdf

Таким образом, я получил растровую версию исходного PDF-файла, в котором содержимое на самом деле является изображением. Надеюсь это поможет.

2
12.02.2021, 19:07

Теги

Похожие вопросы