
Я занимаюсь программированием сервлетов и мне было интересно, есть ли у pdfTeX или pdfLaTeX какие-то ручки для входных или выходных потоков байтов под Windows. Таким образом я мог бы передавать строку прямо в поток и передавать вывод в виде ответа PDF клиенту... есть идеи?
решение1
В некоторой степени pdfTeX
может читать стандартный ввод. Но не редкость компилировать файл LaTeX более одного раза, например, для оглавления или для правильного оформления ссылок.
В качестве выходных файлов (pdf) TeX записывает .log
файл в любом случае, и выходной файл не подходит для потоковой передачи, поскольку pdfTeX
переходит назад в записанном выходном файле. (Он записывает длину потока объекта потока PDF в словарь этого объекта перед потоковой частью.) А LaTeX может захотеть записать вспомогательные файлы ( .aux
, .toc
, …).
Таким образом, сервлет может прочитать входной поток, записать его в файл во временном каталоге и вызвать (pdf)(la)tex
(или любой другой компилятор/формат TeX). Затем файл .log
нужно проанализировать на rerun
наличие чего-либо. Также другие программы, такие как bibtex
или makeindex
могут нуждаться в вызове.
Затем, если компиляция завершена, выходной файл можно передать обратно, а временный каталог очистить.