Вопрос или проблема
Итак, я понимаю, что a2ps
в основном предназначен для преобразования ASCII-кода в постскрипт для печати, но иногда я люблю печатать .txt или .md файл для школы. Часто целое предложение (или даже абзац) будет на одной строке, и a2ps
разрывает строку на любом символе, который требуется для правильного переноса.
Это часто оставляет либо неуклюжие полуслова на строке, либо пробелы в начале строки. Я не могу найти опцию, чтобы предотвратить этот жесткий перенос в середине слов (даже с --pretty-print
).
Есть ли какая-нибудь опция для этого, или я использую не тот инструмент для задачи?
Из моего опыта работы с a2ps
, он не справляется с переносом строк интеллектуальным образом. Поэтому вам нужно представить ваш текстовый файл, уже отформатированный до нужной ширины и переноса, прежде чем передавать его в a2ps
.
Если в вашей системе установлен enscript
, я бы использовал его вместо этого. Поиск в Google по запросу “word wrap a2ps” приведет вас к статье под названием: Printing Plain Text, которая включает следующий пример с enscript
:
$ enscript --header="||Page $% of $=" \
--margin=72:72:72:72 -1 \
--word-wrap \
--media=A4 file.txt
ПРИМЕЧАНИЕ: (однодюймовые поля со всех сторон, один лист, перенос слов, размер страницы A4, правосторонний заголовок с информацией о странице).
Обратите внимание на enscript --help
и страницы man, чтобы узнать больше об опциях, или ищите дополнительные примеры в Google. Я использую enscript
много лет для печати различных текстовых файлов и исходного кода, и он “просто работает”, как только вы настроите переключение так, как вам нравится.
Я тоже с этим сталкивался, но нашел решение, которое работает для меня.
Это двухэтапный процесс:
fmt inputfile.txt > outputfile.txt
a2ps outputfile.txt
Конечно, это может быть сделано в одной строке:
fmt inputfile.txt > outputfile.txt; a2ps outputfile.txt
И если хотите, вы также можете rm
outputfile.txt
.
Я делал это несколько раз, и форматирование работает отлично в стандартных режимах.
Мне нужна помощь с enscript. Я никогда раньше не использовал этот инструмент, и у меня есть процесс, который был преобразован из text2pdf в использование enscript. Теперь форматирование вывода в .pdf некорректное. Похоже, он не распознает размер записи и объединяет строки данных. Есть ли способ указать размер записи, не используя -c, потому что, когда я использую его, данные не печатаются.
Ответ или решение
Для решения проблемы разрыва слов в середине строки при использовании a2ps
, сначала стоит понять, что этот инструмент изначально предназначен для преобразования ASCII-кода в PostScript для печати. При этом a2ps
может неэффективно обрабатывать перенос строк, что приводит к неловким разрывам в середине слов. Если вы сталкиваетесь с ситуацией, когда a2ps
переносит строки внутри слов, это может быть вызвано неоптимальным форматированием исходного текстового файла.
Ваша задача состоит в том, чтобы предварительно отформатировать текст таким образом, чтобы каждая строка содержала только целые слова. Это можно сделать с помощью команды fmt
. Например, вы можете выполнить следующую последовательность команд:
fmt inputfile.txt > outputfile.txt
a2ps outputfile.txt
Таким образом, fmt
автоматически отформатирует входной файл, разделяя текст так, чтобы на каждой строке находились только целые слова. Далее, a2ps
будет работать с уже отформатированным документом, печатая его без неприятных разрывов внутри слов.
Если ваше оборудование поддерживает enscript
, рассмотрите вариант использования этого инструмента. В отличие от a2ps
, enscript
предоставляет встроенную поддержку переноса слов. С помощью следующей команды вы сможете легко распечатать текстовый файл, избегая разрывов внутри слов:
enscript --header="||Page $% of $=" --margin=72:72:72:72 -1 --word-wrap --media=A4 file.txt
Здесь --word-wrap
гарантирует, что будет осуществлен перенос по словам, что позволит избежать разрывов в середине слов и создать более эстетично оформленный отпечаток.
Если вы испытываете трудности с enscript
, как например, при создании PDF-файлов и неправильной комбинации строк данных, следует обратить внимание на использование флага -c
. Если он приводит к отсутствию вывода, возможно, стоит изучить другие параметры настройки, используя enscript --help
или документацию.
Таким образом, чтобы предотвратить разрывы в середине слов при использовании a2ps
, можно воспользоваться предварительным форматированием через fmt
либо полностью перейти на enscript
, обеспечивающий удобства для перенося текста на бумагу без неловких разрывов. Применение данных рекомендаций позволит вам добиться более качественного и читаемого результата при печати текстовых документов.