Перенаправление вызывает ошибку, потому что кодировка по умолчанию, используемая Python, не поддерживает один из символов, которые вы пытаетесь вывести. В вашем случае вы пытаетесь вывести символ маркера •
, используя код GBK c. Это, вероятно, означает, что вы используете китайскую версию Windows.
Версия Python 3.6 или более поздняя будет нормально работать при выводе в окно терминала на Windows, поскольку кодирование символов полностью обходится с помощью Unicode. Только при перенаправлении вывода в файл Юникод должен быть закодирован в поток байтов.
Вы можете установить переменную окружения PYTHONIOENCODING
, чтобы изменить кодировку, используемую для stdio. Если вы используете UTF-8, он гарантированно будет работать с любым символом Юникода.
set PYTHONIOENCODING=utf-8
pdf2txt.py file.pdf > output.txt