Как я могу создать вывод PDF из rrdcgi? - PullRequest
0 голосов
/ 01 апреля 2010

Я создал скрипт rrdcgi для отображения информации о производительности системы в виде графиков. Теперь я хотел бы добавить опцию для пользователей, чтобы создавать PDF на лету с подробной информацией о текущей странице (изображения и информация) и верхний и нижний колонтитулы. Я также хочу, чтобы сгенерированные файлы PDF были сохранены в каком-то месте, чтобы в следующий раз к ним можно было легко получить доступ. Возможно ли это сделать с rrdcgi или любой код на Perl был бы очень признателен.

Мне нужны эти опции

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

Вы должны подумать над тем, что вы хотите поместить в PDF: хотите ли вы точную копию веб-страницы, которую просматривает пользователь (слишком сложно, чтобы быть почти невозможным, если на вашей стороне не установлен браузер пользователя и не используется его вывод на печать) или вам нужна та же информация в примерно похожем макете?

Важным вопросом является то, как вы генерируете HTML: однажды я сделал нечто подобное, чтобы сгенерировать квитанции в формате PDF для участников эксперимента (сейчас я просто выводил HTML со стилями печати ).

HTML генерируется с использованием HTML :: Template , хотя Template.pm будет в порядке.

После этого просто написать другой шаблон, который генерирует L A T E X документ, который может быть обработан с использованием pdflatex . Если вы сохраняете данные во время запроса снимка, вы можете добавить снимок в очередь, которая генерирует документы асинхронно, чтобы запросы не связывали веб-сервер.

Обновление: Глядя на rrdcgi , я теперь понимаю, что он уже использует шаблон. Это идеально: вместо того, чтобы вставлять HTML в шаблон, поместите L A T E X код в шаблон и запустите rrdcgi с --filter возможность создать исходный файл L A T E X, который вы можете запустить через pdflatex. Я полагаю, что проблема, которую нужно решить, состоит в том, чтобы иметь возможность использовать те же данные, которые использовались для создания страницы, которую просматривает пользователь.

Если невозможно повторно запустить rrdcgi с точно такими же данными, рассмотрите возможность добавления некоторого JavaScript, который передает исходный HTML-код страницы, которую просматривает пользователь (или некоторое представление JSON), в сценарий CGI, который анализирует HTML и вывод L A T E X. В этом вам поможет написание чистого HTML в оригинальном шаблоне и разумное использование атрибутов class и id.

У меня нет времени, чтобы проверить какие-либо из этих идей прямо сейчас, но я еще раз посмотрю через пару дней.

0 голосов
/ 08 апреля 2010

Что касается маршрута LaTeX, если у вас rrdcgi генерирует графики в формате pdf, pdflatex сможет интегрировать их непосредственно в документ, создавая супер-качественный pdf с графиками ... очень гладко. Извините, код отсутствует.

0 голосов
/ 01 апреля 2010

Стоит ли усилий?

Почему бы вам не добавить FAQ, объясняющий, как настроить PDF-принтер в Windows / MAC / Linux, и предоставить «чистую» страницу, которую затем можно распечатать?


Поскольку, очевидно, вам нужно создать PDF,

...