Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 08.02.08 09:50
Оценка:
Добрый день,
Не подскажите существует ли компонент для печати и просмотра HTML 4.0 с поддержкой CSS 1,2,3
Нужен не парсер, а именно компонент, необходимо распечатать сформированный HTML документ.
JEditorPane — не подходит, так как есть проблемы с поддержкой CSS.

или может, кто подскажет более правильный способ формирование и печати, документа с форматированием, всякими хитрыми табличками и т.д.
Идея была в следующем, отвестрать шаблон на HTML(шаблон достаточно сложный, без использование CSS не как не получается)
С помощью Velocity вставить в нужные места данные,
и напечатать, всё было шло хорошо до момента печати

Можно конечно через JNI слазить к IE но както не очень хочется, криво это ИМХО.

Благодарю за помощь.
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re: Компонент для отображения и печати HTML
От: Blazkowicz Россия  
Дата: 08.02.08 13:35
Оценка:
Здравствуйте, Tosh, Вы писали:

T>Можно конечно через JNI слазить к IE но както не очень хочется, криво это ИМХО.


Гугл, накопал вот такой свежий проектик
http://html.xamjwg.org/cobra.jsp
Вообще на сколько я знаю в pure java с этим очень туго.
Re: Компонент для отображения и печати HTML
От: 8bit  
Дата: 11.02.08 09:03
Оценка: 3 (1)
Здравствуйте, Tosh, Вы писали:

Flying Saucer ?
https://xhtmlrenderer.dev.java.net/
Re[2]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 11.02.08 09:25
Оценка:
Здравствуйте, Blazkowicz, Вы писали:


T>>Можно конечно через JNI слазить к IE но както не очень хочется, криво это ИМХО.


B>Гугл, накопал вот такой свежий проектик

B>http://html.xamjwg.org/cobra.jsp
B>Вообще на сколько я знаю в pure java с этим очень туго.
Я пробовал браузер построенный на этой комопоненте, со стиля ми у них то же всё плохо к сожалению.
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[2]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 11.02.08 09:25
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Здравствуйте, Tosh, Вы писали:


8>Flying Saucer ?

8>https://xhtmlrenderer.dev.java.net/

Хм судя по описанию и жавадоку, то что нужно. Спасибо!
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[2]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 13.02.08 08:13
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Flying Saucer ?

8>https://xhtmlrenderer.dev.java.net/

Замечательная вещь, парсит и отображает вполне корректно,
правда сходу наступил на Баг с печатью, но благо есть сорцы и всегда можно подправить , подправил пересобрал работает на ура
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[2]: Компонент для отображения и печати HTML
От: mik1  
Дата: 13.02.08 10:38
Оценка:
Здравствуйте, 8bit, Вы писали:

8>Flying Saucer ?

8>https://xhtmlrenderer.dev.java.net/

А Вы не пробовали через нее PDF-ы с кириллицей делать?
Re[3]: Компонент для отображения и печати HTML
От: 8bit  
Дата: 13.02.08 12:05
Оценка:
Здравствуйте, mik1, Вы писали:

M>А Вы не пробовали через нее PDF-ы с кириллицей делать?


Нет.
Re[4]: Компонент для отображения и печати HTML
От: mik1  
Дата: 13.02.08 12:11
Оценка:
M>>А Вы не пробовали через нее PDF-ы с кириллицей делать?
8>Нет.

Жаль. Пока не удается...
Re[5]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 13.02.08 12:32
Оценка:
Здравствуйте, mik1, Вы писали:

M>>>А Вы не пробовали через нее PDF-ы с кириллицей делать?

8>>Нет.

M>Жаль. Пока не удается...


Возможно надо зарегистрировать русские шрифты.
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[6]: Компонент для отображения и печати HTML
От: mik1  
Дата: 13.02.08 13:04
Оценка:
Здравствуйте, Tosh, Вы писали:

M>>>>А Вы не пробовали через нее PDF-ы с кириллицей делать?


T>Возможно надо зарегистрировать русские шрифты.


Ни русские, ни юникодовские не помогают. Еще что-то с входящим файлом нужно сделать (ощущение такое), а что — не пойму.
Это читал.
Re[7]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 13.02.08 13:14
Оценка:
Здравствуйте, mik1, Вы писали:

M>>>>>А Вы не пробовали через нее PDF-ы с кириллицей делать?


T>>Возможно надо зарегистрировать русские шрифты.


M>Ни русские, ни юникодовские не помогают. Еще что-то с входящим файлом нужно сделать (ощущение такое), а что — не пойму.

M>Это читал.

Я попробовал сейчас сгенирить ПДФ из XHTML файла. который у меня замечательно печаетается с русскими буквами через эту библиотеку.
Потом открыл этот пдф в Акробат Ридере, и заглянул в свойства документа шрифты, там были 2 шрифта, причём явно они с кирилицой не дружат.
Открыл другой пдф файл с русским текстом и там глянул шрифты... там были нужные шрифты.
ИМХО надо покапать в сторону регистрации шрифтов. Возможно пдф-врайтеру их надо както подпихнуть.
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[7]: Компонент для отображения и печати HTML
От: Tosh Россия  
Дата: 13.02.08 13:30
Оценка:
Здравствуйте, mik1, Вы писали:

M>>>>>А Вы не пробовали через нее PDF-ы с кириллицей делать?


T>>Возможно надо зарегистрировать русские шрифты.


M>Ни русские, ни юникодовские не помогают. Еще что-то с входящим файлом нужно сделать (ощущение такое), а что — не пойму.

M>Это читал.

Есле залезть внутрь ITextFontResolver и поставить брейкпоинт в методе resolveFont, то видно что когда резолвер ищет фонт и находит его
Но! encoding = Cp1252
Хотя докумет что я ему подсунул был в кодировке Cp1251 (и в документе это явно прописано).
Так что видимо просто резолверу надо правильно добавить шрифты. К сожалению сейчас глубже копать нет времени, на выходных может гляну. думаю дело именно в резолвере
... << RSDN@Home 1.2.0 alpha rev. 788>>
Re[8]: Компонент для отображения и печати HTML
От: mik1  
Дата: 13.02.08 13:34
Оценка:
T>Я попробовал сейчас сгенирить ПДФ из XHTML файла. который у меня замечательно печаетается с русскими буквами через эту библиотеку.
T>Потом открыл этот пдф в Акробат Ридере, и заглянул в свойства документа шрифты, там были 2 шрифта, причём явно они с кирилицой не дружат.
T>Открыл другой пдф файл с русским текстом и там глянул шрифты... там были нужные шрифты.
T>ИМХО надо покапать в сторону регистрации шрифтов. Возможно пдф-врайтеру их надо както подпихнуть.

Угу. У меня на XHTMLPanel тоже нормально показался. Вот почему в каждой библиотеке генерации PDF-ок приходится долбаться с русским языком??? iText быстрее всего сдался, big faceless report generator тоже относительно быстро, а вот эта пока держится...
Re[8]: Компонент для отображения и печати HTML
От: mik1  
Дата: 13.02.08 13:36
Оценка:
T>Если залезть внутрь ITextFontResolver и поставить брейкпоинт в методе resolveFont, то видно что когда резолвер ищет фонт и находит его
T>Но! encoding = Cp1252
T>Хотя документ что я ему подсунул был в кодировке Cp1251 (и в документе это явно прописано).
T>Так что видимо просто резолверу надо правильно добавить шрифты. К сожалению сейчас глубже копать нет времени, на выходных может гляну. думаю дело именно в резолвере

Нет. У меня такой вызов:
        resolver.addFont (
            "times.ttf", //"arialuni.ttf",
            "Cp1251", //BaseFont.IDENTITY_H ,
            BaseFont.NOT_EMBEDDED
        );


Там заданная мной кодировка проходит. Найду, отпишусь.
Re[9]: Компонент для отображения и печати HTML
От: mik1  
Дата: 14.02.08 08:42
Оценка:
M>Там заданная мной кодировка проходит. Найду, отпишусь.

Нашлось. Регистрируем шрифт (как писал раньше). В отладчике смотрим его font family. Дальше указываем ее в таблице стилей. В принципе, все. Проблемы могут быть, если такое семейство уже есть (_sharedContext.getFontResolver() — тут кэш шрифтов).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style language="text/css"> p { font-family: Arial Unicode MS; } </style>
</head>

<body>
<p>
Проверка связи!
</p>

</body>

</html>

Re[10]: Компонент для отображения и печати HTML
От: mik1  
Дата: 14.02.08 08:43
Оценка:
З.Ы. Это пример для виндового шрифта arialuni.ttf.

M><style language="text/css"> p { font-family: Arial Unicode MS; } </style>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.