Есть ли такая вещь, как язык разметки принтера - PullRequest
4 голосов
/ 14 октября 2010

Мне нравится печатать документ.Содержимое документа - это таблицы и текст разных цветов.Существует ли формат файла принтера lightwight, который можно использовать как шаблон?

PS, PDF, DOC файлы, на мой взгляд, слишком тяжелы для анализа.Может существовать какой-либо формат файла XML или YAML, который поддерживает:

  1. Простое создание (возможно, с помощью WYSIWYG-редактора)
  2. Разбор и манипулирование с библиотекой-поддержкой
  3. Простая отправка на принтер (возможно, с библиотечной поддержкой)

Или я должен сделать это обычным способом и рисовать в CDC?

Ответы [ 7 ]

2 голосов
/ 14 октября 2010

Я заметил, что вы используете MFC (так, Windows).В этом случае ответ квалифицированный да.В последних версиях Windows Microsoft предлагает API XPS Document , который позволяет создавать и обрабатывать PDF-подобные документы с использованием XML, которые затем можно распечатать с помощью API печати XPS.

(Для более ранних версий Windows, которые не поддерживают этот API, вы можете попытаться напрямую работать с форматом файла XPS, но это, вероятно, намного сложнее, чем при использовании CDC. Даже с API вы будете работать на довольно низком уровнеуровень.)

Конечные пользователи могут создавать документы XPS с помощью драйвера печати XPS, который доступен бесплатно от Microsoft (и в комплекте с некоторыми продуктами MS - они, вероятно, уже имеют его в своей системе).

2 голосов
/ 14 октября 2010

Не существует универсального языка, который поддерживается всеми (или даже многими) принтерами.Хотя PCL и PS являются наиболее используемыми, существуют также принтеры, которые работают только с определенными драйверами принтера, поскольку они поддерживают только собственный формат данных (часто предварительно визуализируемый на клиенте).

Однако вы можете использовать XSL-FO для создания документов, которые затем можно отобразить в драйвере принтера с помощью поддержки библиотеки.

1 голос
/ 06 ноября 2010

HTML + CSS можно распечатать - правильно.CSS был разработан для поддержки этого с атрибутом media, чтобы указать, что ваш CSS предназначен для макета принтера, а не для макета экрана.Существуют такие инструменты, как PRINCE (бесплатные + коммерческие версии), чтобы сделать это для печати. ​​

1 голос
/ 14 октября 2010

Думаю, что Post Script - действительно хороший выбор для этого.Это на самом деле очень простой язык, и его должно быть очень легко разобрать, потому что он ориентирован на стек.Затем - большинство принтеров поддерживают его, и даже если у вас нет поддержки, вы можете использовать GhostScript для преобразования в различные форматы (Рассматривайте GS как «виртуальный принтер, поддерживающий PS»).Наконец, есть много книг и учебных пособий по языку.

О разборе - вы можете определить новые переменные и функции в PS.Так что, может быть, ваша проблема может быть решена (почти) полностью с помощью PS.

1 голос
/ 14 октября 2010

Я думаю, что что-то вроде TeX или LaTeX (или даже troff или groff) может удовлетворить ваши потребности. Погугли их и посмотри.

Существуют также библиотеки для вывода документов на печать из HTML-источника. Посмотрите на http://libharu.sourceforge.net/ например. Это выводит готовый к печати .PDF

0 голосов
/ 14 октября 2010

Для более мощного набора вы можете использовать латекс. Это даст вам возможность создавать шаблоны, куда вы можете просто скопировать текст.

На более дружественной ноте, MS-Word и другие текстовые процессоры имеют шаблоны. Проблема в том, что они не имеют общего стандарта или разметки.

Вы также можете использовать HTML для рендеринга в общей разметке, но это не очень удобно для печати. ​​

0 голосов
/ 14 октября 2010

Я думаю, PostScript - это язык разметки, используемый принтерами. Я где-то это читал, так что поправьте меня, если postscript сейчас устарел.

http://en.wikipedia.org/wiki/PostScript

...