Как преобразовать RichText (RTF) документ с изображениями в HTML в Delphi? - PullRequest
3 голосов
/ 12 января 2011

Я пытался найти бесплатный (предпочтительно с открытым исходным кодом) компонент или библиотеку, которая позволит конвертировать файл RTF со встроенными изображениями в файл HTML и файлы изображений или более качественные потоки HTML и изображения.

Идеальное решение, независимо от того, является ли это библиотекой DLL или компонентом Delphi, позволило бы передавать данные в IStream / TStream с помощью обратных вызовов, поэтому я смогу конвертировать и сохранять изображения в выбранный формат, возвращая относительное имя файла изображения для анализатора RTF ввключить в сгенерированный файл HTML, но сохранение как есть также хорошо, особенно когда код будет с открытым исходным кодом.

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

Если я не найду решение, я сделаю этовозможно конвертировать этот код в Delphя делаю и делаю это доступным, но, может быть, кто-то уже сделал это?

РЕДАКТИРОВАТЬ:

Мы решили использовать вышеупомянутый .Net RtfConverter , скомпилированный как DLL, генерироватьDelphi TLB оттуда и заставляет клиентов устанавливать .Net framework (встроенный в установщик).Теперь преобразование работает как чудо, еще один признак того, что пришло время переходить на .Net из Delphi ...

Ответы [ 3 ]

3 голосов
/ 12 января 2011

Коммерческий конвертер для RTF в HTML 4.01 / HTML5 и RTF для различных разновидностей XHTML - ScroogeXHTML для Delphi .Версия 5.0 включает улучшенную поддержку изображений, с примером кода для преобразования WMF в PNG.(Я являюсь разработчиком этого компонента и его аналога для платформы Java).

3 голосов
/ 12 января 2011

Если вы МОЖЕТЕ использовать Microsoft Office, чтобы открыть RTF, а затем сохранить его как HTML в фоновом режиме, то я считаю, что это ваше лучшее решение, просто запустите экземпляр Microsoft Word в фоновом режиме, используя OLE, загрузите RTF, а затем экспортируйте это как HTML ...

0 голосов
/ 28 мая 2012

PS: я разработчик этого продукта.

Это коммерческая библиотека .Net для конвертирования RTF в HTML 3.2, 4.01, XHTML 1.01 и HTML 5 .Он

поддерживает преобразование с использованием таблиц и вложенных таблиц, упорядоченных и маркированных списков, изображений, встроенных в HTML, Unicode, специальных символов HTML и т. Д.

Это пример кода на C #:

        SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml();
        r.OutputFormat = SautinSoft.RtfToHtml.eOutputFormat.HTML_5;
        r.ImageStyle.IncludeImageInHtml = true;
        r.ConvertFile(@"d:\document.rtf",@"d:\html5.htm");
...