Один вкладыш для преобразования текстовой строки в PDF

Я пытался найти способ создания простой страницы PDF с терминала, который содержит только одну строку, например, «Прелюдия».

Некоторые предпосылки: я использую pdfunite для присоединения к музыке диаграммы вместе в один PDF. Вот пример:

 pdfunite Welcome.pdf Rooftops.pdf Announcements.pdf ChildrensPrayer.pdf ComeAliveDryBones.pdf Benediction.pdf Dismissal.pdf ~/Desktop/2016-03-12.pdf

То, что я пытаюсь найти, - это способ создания пользовательских листов в конечном PDF-файле в одной команде, подобной этой:

pdfunite Welcome.pdf (enscript "Have a seat" - | ps2pdf - output.pdf) Rooftops.pdf Announcements.pdf ComeAliveDryBones.pdf Benediction.pdf Dismissal.pdf ~/Desktop/2016-03-12.pdf
[d3 ] В сущности, создание PDF-файла, содержащего текст «Усаживайтесь» на лету и вставляя его в правильное место окончательного документа.

Возможно ли это?

1
задан 21 March 2016 в 19:38

1 ответ

Я плохо себя чувствую, не принимая ответ, предложенный @kos, но я не мог заставить его работать, и я предпочел продолжить простоту pdfunite. @kos помог мне понять enscript (THANKS!)

Моим окончательным решением было написать сценарий bash для создания временных файлов PDF, а затем объединить их вместе с помощью pdfunite.

Команда выдается следующим образом:

./charts.bash -o=output-filename.pdf ./AlmostThere.pdf ./Breathe.pdf -c="The Gospel According to Matthew" ./Doxology.pdf -c="Closing Prayer"

Вот сценарий bash (я новичок, иди просто)

#!/bin/bash
CHARTS=()
DELETEAFTER=()
for i in "$@"
do
    case $i in
        -o=*|--output=*)
        OUTPUT="${i#*=}"
    ;;
        -c=*|--create=*)
        NEWFILENAME="${i#*=}"
        NEWFILENAME=${HOME}/Desktop/${NEWFILENAME//[[:space:]]/}.pdf
        enscript <<<"${i#*=}" -p - --no-header --font=Courier25 --margins=20:20:200:0 | ps2pdf - $NEWFILENAME
        CHARTS+=("$NEWFILENAME")
    ;;
        *)
         # unknown option
        CHARTS+=("${i#*=}")
        DELETEAFTER+=("$NEWFILENAME");
    ;;
    esac
done
pdfuniteString=$(printf " %s" "${CHARTS[@]}")
pdfuniteString=${pdfuniteString:1}
wait
pdfunite $pdfuniteString ${HOME}/Desktop/${OUTPUT}
wait
for i in "${DELETEAFTER[@]}"
do
    if [ -n "$i" ]; then
        rm "$i"
    fi
done
echo Complete
0
ответ дан 23 May 2018 в 12:42

Другие вопросы по тегам:

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