Объединение enscript, find, iconv и ps2pdf

Я пытаюсь написать небольшой сценарий bash, который преобразует исходные файлы в каталоге в .pdf. Шаги следующие:

  • Найдите файлы с помощью find
  • , выполните iconv для файлов, преобразуя кодировку символов из utf-8 в iso-8859-1 с помощью find -exec
  • , передайте этот вывод через enscript и, в конечном итоге, ps2pdf

Единственная причина, по которой я добавил iconv, это то, что enscript не поддерживает utf-8. Пока что я сделал следующий беспорядок:

#!/bin/bash
enscript --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1 -name '*.java' -type f -exec iconv -f utf-8 -t iso-8859-1 {} +` | ps2pdf - "$2"'.pdf'

Запустив его, я получил следующий результат: enscript: invalid option - ',' Попробуйте `enscript --help 'для получения дополнительной информации.

Редактировать: Эта ошибка не возникала до того, как я добавил -exec iconv.
2. редактировать: Первоначальная формулировка, которую я сделал, была расплывчатой, и теперь я понимаю. Вот исходный сценарий, который я пытался изменить:

#!/bin/bash
`which enscript` --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1'/src/' -name '*.java'` | ps2pdf - "$2"'.pdf'

./ script.sh target_dir output_file_name

Исходный сценарий объединяет все исходные файлы в папке рекурсивно в один единственный PDF-файл, причем каждый файл начинается с новой страницы. Может, мне просто пришлось смириться с необходимостью сделать это в два этапа. Сначала преобразование кодировки, а затем преобразование в PDF.

0
26.02.2017, 17:49
1 ответ

Создайте сценарий java2ps для упрощения обработки параметров

#!/bin/bash

export ENSCRIPT="
--portrait
--columns=1
--font=Courier8
--highlight=java
--color
--line-numbers
--output=-
"

iconv -f utf-8 -t iso-8859-1 "$1" \
| enscript --header=' $n|'"$1"'|%F  Page $% of $='

Теперь выполнение очень простое

find -name '*.java' -type f -exec ~/java2ps {} \; | ps2pdf - > all.pdf
0
28.01.2020, 04:48

Теги

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