Я пытался найти способ создания простой страницы 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-файла, содержащего текст «Усаживайтесь» на лету и вставляя его в правильное место окончательного документа. Возможно ли это?
Я плохо себя чувствую, не принимая ответ, предложенный @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