Я сейчас создаю настольное приложение, которое представляет его читабельный вывод в виде XHTML, отображаемого в элементе управления WebBrowser. В конце концов, этот вывод придется преобразовать из файла XHTML в изображение документа в системе обработки изображений. В отличие от документов XHTML, изображение документа должно быть разделено на физические страницы; кроме того - и это та часть, которая меня убивает - на этих страницах должны быть верхние и нижние колонтитулы.
Как бы мне ни хотелось, я не могу просто заставить WebBrowser печатать в файл - поддерживаемые им параметры верхнего / нижнего колонтитула далеко не достаточно сложны. Поэтому я пытаюсь выяснить, какова правильная технология для создания этих изображений.
Мне кажется (хотя это и не обязательно), что я в конечном итоге буду делать PDF-версии HTML-документов (чтобы я мог добавлять верхние и нижние колонтитулы), а затем отображать PDF-файлы в формате TIFF, что окончательный формат, который хочет система обработки изображений. Итак, что я рассматриваю:
Используйте какое-то программное обеспечение для преобразования XHTML в PDF. Проблема в том, что, не выполняя много оценки и тестирования, я не могу понять, есть ли у продуктов, на которые я смотрел, даже возможность делать то, что мне нужно, то есть брать существующие документы XHTML, украшать их заголовками и нижние колонтитулы и разбить их на страницы.
Используйте XSL-FO для создания PDF-файлов. Здесь помогает быть фанатом XSLT уровня ниндзя (именно так я и создаю XHTML), но все равно это выглядит как неловкое и медленное решение с большим количеством движущихся частей. Кроме того, это означает, что я вставляю большую неуклюжую Java-программу в середину моей красивой чистой системы .NET, хотя я, безусловно, достаточно взрослый, чтобы сделать это, если это правильный ответ.
Используйте некоторые другие технологии, о которых я даже не думал, например, LaTeX. Может быть, есть какой-то чудесный инструмент для отображения страниц, который превращает XHTML прямо в TIFF с верхними и нижними колонтитулами страниц. Это было бы идеально.
Мои основные проблемы:
Я создаю коммерческий продукт; любая технология, которую я использую, должна быть доступной и поддерживаемой. Это не обязательно должно быть бесплатно.
Я не хочу исчезать в кроличьей норе в течение трех месяцев, стуча по этому материалу, чтобы заставить его работать. Интуитивно это выглядит как проблемное пространство, где я могу потерять много времени, просто оценивая и отвергая инструменты.
Какое бы решение я ни принял, оно должно быть относительно невосприимчивым к изменениям форматирования в XHTML. Причина, по которой я в основном использую XSLT и создаю XHTML, заключается в том, что документы, которые я создаю, динамически собираются с использованием бизнес-правил, которые постоянно меняются.
Я провел много времени в поисках альтернатив и не нашел ничего, что, очевидно, ответило бы. Но, может быть, один из вас, замечательные люди, уже решил эту проблему, и если это так, я бы хотел встать на ваши плечи.