Я ищу способ, чтобы мой компьютер автоматически генерировал и печатал PDF-файлы из папки, полной файлов уценки.
Итак, каждое утро в 5 утра я хочу, чтобы мой компьютер просматривал мою папку /markdown-files, создавал кучу PDF-файлов для перехода в папку /PDF, а также запускал принтер, чтобы страницы ждали меня.
Есть несколько требований, которые могут сделать это немного сложнее:
Раньше я использовал WKPDF для создания PDF-файлов, но он больше не работает на Yosemite.
Вы можете сделать это с помощью Markdown.pl и htmldoc(1), которые можно установить вместе с Homebrew . Основной процесс создания PDF-файла:
markdown foo.markdown | htmldoc --no-toc --no-title -f foo.pdf -
Что касается вашего имени файла на странице, вы можете включить эхо, чтобы добавить его как элемент HTML:
echo $(markdown foo.markdown) "<p>foo</p>" | htmldoc --no-toc --no-title -f foo.pdf -
А для печати команда lpr(1) отправит файл на принтер по умолчанию.
Связывая это полностью:
for filename in `ls *.markdown`;
do
echo $(markdown "$filename") "<p>$filename</p>" |
htmldoc --no-toc --no-title -f "${filename}.pdf" -
lpr "${filename}.pdf"
done
Вот решение, которое использует LaTeX для создания PDF. Если у вас есть длинный текст в файлах Markdown и вы хотите оптимизировать его для типографской удобочитаемости (и я подозреваю, что вы это делаете), LaTeX, как правило, выполняет гораздо лучшую работу по сравнению с механизмами HTML.
Он используется pandoc
в качестве посредника между Markdown и LaTeX, а также создает PDF для вас.
#!/bin/bash
md-dir="MARKDOWN_DIRECTORY_HERE"
pdf-dir="PDF_DIRECTORY_HERE"
cd "${md-dir}"
for filename in *.md; do
target-pdf="${pdf-dir}/${filename}.pdf"
pandoc "${filename}" -t latex --latex-engine=xelatex -V geometry=a4paper -V fontsize=11pt -V listings -V header-includes="\usepackage{fancyhdr}\pagestyle{fancyplain}\cfoot{}\rhead{\thepage}\lhead{\texttt{\lstinline/${filename}/}}" -V header-includes="\linespread{2.0}" -o "${target-pdf}"
echo "produced ${filename}.pdf"
lpr "${target-pdf}"
done
pandoc
от доморощенного:brew install pandoc
Вы должны иметь возможность работать в новом окне терминала (с bash)
echo "test" | pandoc -t latex --latex-engine=xelatex -o test.pdf
и получить действующий test.pdf
документ со словом "тест"
Вы можете многое изменить с помощью настроек LaTeX из командной строки.
\linespread{2.0}
множительgeometry=a4paper
наgeometry=a4paper,left=XXmm,right=XXmm,top=XXmm,bottom=XXmm
11pt
к 10pt или 12pt, и все должно масштабироваться соответствующим образом.pandoc
: -V mainfont="NAME OF FONT"
. Вы также можете установить monofont
этот способ.\input{my-template-file}
из командной строки.Я не использовал WKPDF, но его автор предлагает метод, с помощью которого его можно заставить работать в Yosemite: https://github.com/plessl/wkpdf/wiki/How-to-install-on-MacOS-10.10-Yosemite .
Вы можете использовать PhantomJS . Это не так просто, как WKPDF для создания PDF, поскольку он имеет более широкий набор функций, но работает нормально.
ЦГП серый
ЦГП серый
Дрю Стивенс
ЦГП серый
ls *.md
; do echo $(markdown $filename) "<p>$filename</p>" | htmldoc --no-toc --no-title --fontspacing 3 --size a4 -f ${имя файла}.pdf -lpr ${имя файла}.pdf готовоЦГП серый
Дрю Стивенс
ЦГП серый
без холма
$filename
, где он используется в качестве аргумента команды, чтобы преодолеть это. Затем он также должен работать с трубами в имени.андрыбак
ls
вывод» ? Так что вместо`ls *.markdown`
должно быть просто*.markdown
(с глобусом *). PS Кроме того, лучше использовать$(command)
вместо обратных кавычек`command`
.ЦГП серый
Дрю Стивенс
cinfo.quantize_colors = (boolean)0;
. Затем с помощью./configure && make
он создает и запускает для меня (программа вывода - htmldoc/htmldoc)