Как мне программно проверить HTML-документ - PullRequest
7 голосов
/ 20 октября 2008

У меня есть база данных, заполненная небольшими документами HTML, и мне нужно программно вставить несколько, скажем, документов PDF с iText или документов Word с Aspose.Words . Мне нужно сохранить любое форматирование в HTML-документах (в разумных пределах необходимо соблюдать теги , CSS вроде очень удобен).

И iText, и Aspose работают (примерно) по направлениям:

Document document = new Document( Size.A4, Aspect.PORTRAIT );

document.setFont( "Helvetica", 20, Font.BOLD );
document.insert( "some string" )
document.setBold( true );
document.insert( "A bold string" );

Поэтому (я думаю) мне нужен какой-то синтаксический анализатор HTML, который я смогу проверить на наличие строк и стилей для вставки в мой документ.

Кто-нибудь может предложить хорошую библиотеку или разумный подход к этой проблеме? Платформа Java

Ответы [ 5 ]

2 голосов
/ 21 октября 2008

HTMLparser - хороший HTML-парсер.

Я использовал это для разбора HTML в одном из моих проектов.

Вы можете написать свои собственные фильтры для разбора HTML на то, что вы хотите, поэтому Тег <br> не должен быть сложным для анализа

Вы можете анализировать CSS с помощью CssSelectorNodeFilter

1 голос
/ 20 октября 2008

Если HTML представляет собой «правильно сформированный XML» (XHTML), почему бы не использовать синтаксический анализатор XML (например, Xerces) и затем программно проверить дерево DOM.

0 голосов
/ 21 октября 2008

Ознакомьтесь с xhtml рендером для летающих тарелок - они визуализируют правильно сформированные XHTML-файлы в PDF и позволяют контролировать вывод с помощью CSS.

0 голосов
/ 21 октября 2008

Возможно, вам лучше получить компонент, который идет непосредственно из HTML в PDF или Word, а затем попытаться проанализировать HTML-документ и самостоятельно продублировать форматирование на основе HTML. Если вы хотите конвертировать HTML в PDF и используете .Net, Winnovative предоставляет хорошее решение.

0 голосов
/ 20 октября 2008

Adobe Acrobat Pro позволяет захватывать сайты через HTTP и отлично справляется с сохранением стиля и макета. Я не использовал его с точки зрения API, но, возможно, стоит взглянуть на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...