Печать нескольких пользовательских документов с веб-сайта - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть веб-сайт, управляемый базой данных, с Django, работающим на сервере Linux. Он управляет многими отдельными группами с сотнями пользователей. Он должен иметь возможность распечатывать индивидуальные документы (то есть учетные данные для доступа) по требованию для одного, нескольких или всех пользователей. У каждой группы есть собственный логотип, и для каждого удостоверения личности указаны имя пользователя, фотография и некоторое количество дополнительных графических штампов. Вся пользовательская информация основана на сохраненных данных для пользователя.

Я пытаюсь определить лучший метод для форматирования учетных данных и печати. Вот варианты, которые я придумала до сих пор:

  • прямое форматирование HTML с использованием табличных тегов для разбиения учетных данных на ячейки для хранения пользовательского текста или графики. Это кажется простым, за исключением того, что оно не позволяет печатать сразу пару сотен учетных данных.

  • Начиная с шаблона документа в форме файла PDF и используя доступные наборы инструментов командной строки PDF для печати пользовательских данных и добавления нескольких файлов PDF в один файл для печати. Это также кажется разумным, за исключением того, что стоимость серверной лицензии для этих наборов инструментов слишком высока для Linux (> 500 долларов США).

  • автономная программа, работающая на клиенте, которая извлекает данные пользователя через веб-сервис и выполняет все форматирование и печать локально.

Есть ли другие варианты? Любой совет? Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 22 октября 2011

Решением было использование библиотеки ReportLab с открытым исходным кодом для создания страниц PDF с нуля.

Я не смог найти недорогой способ штамповать пользовательские компоненты в существующий PDF.ReportLab может сделать это, но только через свой коммерческий продукт.

Прекрасно работает, хотя.

0 голосов
/ 24 апреля 2011

Однажды я сделал нечто подобное, используя SVG. Это обеспечивает большую гибкость, поскольку вы можете создать свои «учетные данные» в inkscape, использовать имена и логотипы местозаполнителей, а затем, после завершения, открыть вывод svg в текстовом редакторе и заменить заполнители переменными контекста.

Один совет: поместите весь код шаблона django (если есть) в xml-комментарии, например <!--{% load xyz_tags %}-->, в противном случае многие вещи будут испорчены, если вы откроете его в inkscape.

...