Текст в PDF
Попалась задача — преобразовать огромный (полтора миллиона строк) тестовый файл в кодировке
Проблемы две — объём текста и кодировка. Графические утилиты на таком объёме умирают, а с кодировкой UTF, как оказалось, работают далеко не все утилиты командной строки.
Перебрал несколько, с задачей справилась только утилита paps. Хочу себе это записать, чтобы не пришлось заниматься перебором, если в будущем столкнусь с такой же задачей.
Ещё в моей задаче первый лист должен быть пустым и на каждом листе должен быть номер страницы. В результате строка запуска выглядит так:
paps --footer --footer-center={page_idx} <(printf \\f;cat listing.txt) -o listing.pdfНебольшое примечание: при помощи printf я вставляю текстовый символ разрыва страницы (\f), чтобы первая страница оказалась пустой.
Комментарии 5
Я пробовал, у меня не справился. Уже не помню в чём там дело было.
А пронумеровать потом, после этого?
Если первая страница может быть без номера, а нумерация остальных может начинаться с единицы, то
tr -cd
Тут важно прописать, что для сборки PDF используется xelatex, потому что используемый по умолчанию pdflatex не работает с юникодом, и указать шрифт, который содержит нужные символы — здесь Unifont, потому что он покрывает очень значительную часть юникода. Ну и 'sed G' нужно, чтобы разделять строки пустыми строками, потому что иначе переносы строк будут проигнорированы.
В этом примере 100 тысяч строк, но я не думаю, что от масштабирования
Увы, никак:-(
Резюме: через paps проще.