Comments 47
торт
Очень полезная штука. Спасибо. Даже и не думал, что настроить настолько легко
Права можно раздавать по ip клиентов который по теории должен быть в $ENV.
Эта технология может пригодиться для экономии трафика, когда печать идет через vpn/интернет. Сделать этот веб-принтер локально, а на стороне принтера сделать скрипт который будет брать эти pdf-ки и печатать.
У нас в компании сейчас на принтер летят raw-данные через vpn, в pdf виде экономия в районе 10..100 раз.
Эта технология может пригодиться для экономии трафика, когда печать идет через vpn/интернет. Сделать этот веб-принтер локально, а на стороне принтера сделать скрипт который будет брать эти pdf-ки и печатать.
У нас в компании сейчас на принтер летят raw-данные через vpn, в pdf виде экономия в районе 10..100 раз.
Раздавать права по IP — хорошая идея. В скрипт не включил только из-за того, что IP-адреса у многих провайдеров динамические. А в локальной сети ограничения, наверное, не нужны…
Ну вот и применение нашлось :-). А Вы правда посчитали экономию? Дело в том, что PDF-документы, генерируемые скриптом, содержат не текст, написанный шрифтами, а, фактически, картинки. Поэтому они больше, чем обычные PDF-ки.
Ну вот и применение нашлось :-). А Вы правда посчитали экономию? Дело в том, что PDF-документы, генерируемые скриптом, содержат не текст, написанный шрифтами, а, фактически, картинки. Поэтому они больше, чем обычные PDF-ки.
получилось, очень рад, зачем это, не знаю :)
спасибо
спасибо
web-pdf имеет достаточно узкое применение.
Вы просто замечательный обфускатор. Надеюсь для обычной работы вы используете более разумные имена у переменных, а то я не завидую вашим коллегам.
По поводу имен переменных — Вы правы, конечно.
Но, на мой взгляд, написать вместо $d что-нибудь типа $input_data — это превратить легкий компактный скрипт в более громоздкий.
Поэтому удобочитаемыми сделал только имена функций. А классы не стал делать за ненадобностью :-)
Но, на мой взгляд, написать вместо $d что-нибудь типа $input_data — это превратить легкий компактный скрипт в более громоздкий.
Поэтому удобочитаемыми сделал только имена функций. А классы не стал делать за ненадобностью :-)
зачет
в своё время писал веб-приложение на asp.net, там была поставлена задача конвертирования html-страницы в формат pdf. выкрутился я используя сторонний софт, консольную софтину wkhtmltopdf, найденную на code.google.com.
так что с уверенностью могу утверждать — задача весьма актуальная. поэтому я весьма благодарен вам за решение, приведённое в топике, весьма вероятно что оно пригодится и не раз.
так что с уверенностью могу утверждать — задача весьма актуальная. поэтому я весьма благодарен вам за решение, приведённое в топике, весьма вероятно что оно пригодится и не раз.
А по моему, очень даже не бесполезная вещь. Вот к примеру, есть газета, где часть авторов работают удалённо. Так вот, наверняка этим авторам, печатающим статьи в ворде, будет проще посылать статьи в редакцию, просто отправляя их на печать похожего скрипта, нежели возится с электронной почтой, атачтментами, загрузкой по фтп итд итп…
Интересно! Появилась пара вопросов.
>Нам понадобится (кроме головы и рук) только работающий web-сервер с поддержкой cgi-bin, к которому у нас есть доступ по FTP
FTP — это опечатка ( м.б. HTTP? ), или же я чего-то не понял?
> Фактически, нужны только Perl и программа gs, которые есть практически везде.
Ну, perl я у себя на рабочей Windows XP нашел :), а с gs вот так вот с ходу проблема. Никогда не задавался целью, правда, эту gs как-то использовать.
>Нам понадобится (кроме головы и рук) только работающий web-сервер с поддержкой cgi-bin, к которому у нас есть доступ по FTP
FTP — это опечатка ( м.б. HTTP? ), или же я чего-то не понял?
> Фактически, нужны только Perl и программа gs, которые есть практически везде.
Ну, perl я у себя на рабочей Windows XP нашел :), а с gs вот так вот с ходу проблема. Никогда не задавался целью, правда, эту gs как-то использовать.
Скрипт будет работать на web-сервере (сервер действительно, по определению, поддерживает HTTP). Разместить скрипт на сервере — через протокол FTP. Не опечатка :-)
На рабочей машине Perl и gs не нужны. Так как скрипт работает на сервере, то нужны они именно на сервере. Именно поэтому и обещано, что «за 10 минут»
На рабочей машине Perl и gs не нужны. Так как скрипт работает на сервере, то нужны они именно на сервере. Именно поэтому и обещано, что «за 10 минут»
Даже кириллицу понимает?
А мне проще aptitude install cups-pdf.
аналог факса в 21м веке =)
кстати, выкладывайте версию на PHP интересно!
Спасибо автору! На днях попробую скриптик. Есть принтеры, драйвера на которые отсутствуют для win7/winvista, а печатать по сети они не дают без них.
кстати, есть похожий (частично) сервис — BlueMailCentral (я как-то ради интереса пользовался пару раз)
он тоже ставит в систему свой принтер, и когда вы посылаете документ на печать, он отсылается на их сервер
отличие в том, что печатается не pdf — документ реально печатают на бумаге,
и посылают в конверте по указанному вами адресу
он тоже ставит в систему свой принтер, и когда вы посылаете документ на печать, он отсылается на их сервер
отличие в том, что печатается не pdf — документ реально печатают на бумаге,
и посылают в конверте по указанному вами адресу
Такая штука может быть полезна для электронного документооборота. Например, у вас в формате MS Word есть куча документов. Вы их махом печатаете на Web-принтере, который закидывает эти документы в систему документохранения. А человек, ответственный за порядок в документохранении, затем добавляет заголовки, права и тому подобное.
Спасибо, работает на УРА!
а вот только нельзя ли сделать так, чтобы имена файлов сохраняемых на сервере, соответствовали именам файлам — оригиналам.
а вот только нельзя ли сделать так, чтобы имена файлов сохраняемых на сервере, соответствовали именам файлам — оригиналам.
есть ли gs для Windows? (веб-сервер поднят на рабочей машине с WinXP)
Прошу прощения, в первый раз плохо погуглил.
Последняя версия gs под Win есть здесь: pages.cs.wisc.edu/~ghost/doc/GPL/gpl864.htm
Однако, скрипт всё равно не работает, т.к. в perl для Windows не реализован pipe-open :( Вероятно, можно как-то решить эту проблему используя модуль Win32::Fork
Последняя версия gs под Win есть здесь: pages.cs.wisc.edu/~ghost/doc/GPL/gpl864.htm
Однако, скрипт всё равно не работает, т.к. в perl для Windows не реализован pipe-open :( Вероятно, можно как-то решить эту проблему используя модуль Win32::Fork
Можно еще давать пользователям доступ только к тем файлам, которые «распечатали» они сами, добавив пару строк кода:
if (!(-e "../pdf/".$ENV{'REMOTE_ADDR'}."/.htaccess"))
{
mkdir "../pdf/".$ENV{'REMOTE_ADDR'};
open (AF, "> ../pdf/".$ENV{'REMOTE_ADDR'}."/.htaccess");
print AF qq[Order allow,deny\nallow from 127.0.0.1 10.103.224.171 ].$ENV{'REMOTE_ADDR'};
close AF;
}
А сохранять файлы, соответственно, в директорию, имя которой равно ИПшнику пользователя.
if (!(-e "../pdf/".$ENV{'REMOTE_ADDR'}."/.htaccess"))
{
mkdir "../pdf/".$ENV{'REMOTE_ADDR'};
open (AF, "> ../pdf/".$ENV{'REMOTE_ADDR'}."/.htaccess");
print AF qq[Order allow,deny\nallow from 127.0.0.1 10.103.224.171 ].$ENV{'REMOTE_ADDR'};
close AF;
}
А сохранять файлы, соответственно, в директорию, имя которой равно ИПшнику пользователя.
Sign up to leave a comment.
Свой Web-PDF принтер за 10 минут