Я считаю, что в проекте Birt использовался IText . (сейчас ITextPDF )
Другое решение заключается в интеграции Apache Fop в ваш проект RCP . (см. Apache FOP ).
Чтобы это работало, рекомендуется не реализовывать рендер
но реализовать пару IFDocumentHandler
/ IFPainter
, как часть нового промежуточного формата (если он был интегрирован в Fop, в котором я не уверен):
- создайте новый проект Java, определитесь с
Назовите пакет и подготовьте два класса, реализующих
IFDocumentHandler
(на уровне документа) и IFPainter
(на уровне страницы).
Эти интерфейсы находятся в пакете org.apache.fop.render.intermediate
.
- Чтобы зарегистрировать новую реализацию, вам нужно определить тип MIME (см. Также
MimeConstants.java
) и создайте класс, расширяющий AbstractIFDocumentHandlerMaker
, который служит классом фабрики.
- Затем создайте текстовый файл с именем
META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
, в котором вы напишите полное имя класса этого класса "создателя".
- Одна вещь, которую мне, возможно, придется добавить (в настоящее время отсутствует) - это метод
setIFDocumentHandlerOverride()
в FOUserAgent
, поэтому вы можете настроить вывод в окне SWT
. Нормальный API оптимизирован для генерации файлов.
Ошибка 23618 (исправлена семь лет спустя!) Содержит небольшой пример создания задания на принтер, а в SWT FAQ есть некоторые интересные элементы на принтере (вместо отображения, DPI и Trim). Этот SWT-фрагмент также вполне понятен.
Однако ни один из этих примеров не вызывается с помощью команд, даже если вы можете определить одну легко ) после того, как вы настроите обработчик (то есть любой класс, который вы написали, способный открыть диалог печати).
Примечание: при вызове диалогового окна «Печать» следует помнить, что только самые последние версии Eclipse Helios 3.6 (а именно 3.6M5 на конец января 2010 г. ) могут запомнить выбранного пользователя. параметры для всех текстовых редакторов, пока рабочая среда не будет закрыта (то есть:
- Выбранный принтер
- Печать в файл
- Настройки принтера: это специфические параметры принтера, такие как размер бумаги, ориентация страницы и т. Д.)