Удаление изображений из .rtf путем прохождения через текстовое поле с Coldfusion - PullRequest
2 голосов
/ 31 января 2011

В одной части моего приложения пользователи могут скопировать документ Word или RTF и вставить его в текстовое поле на форме, а при отправке формы любые изображения и много форматирования удаляются из содержимого поля формы.

Я хочу достичь того же результата, но путем непосредственного чтения из файла, а не путем ручной отправки формы, т. Е. Вырезания скрытых символов и данных изображения и просто оставления текста и перевода строки / возврата каретки.

Как мне добиться подобной вещи?

Ответы [ 2 ]

2 голосов
/ 31 января 2011

Если вы просто хотите извлечь текст из документов Word, вы можете попробовать POI. CF9 уже включает версию, которая может обрабатывать большинство файлов .doc или .docx. (Он не обрабатывает файлы .rtf). Для CF8 вам нужно будет использовать javaLoader для загрузки более новой версии. Чтение документов Office с помощью ColdFusion (2) .

1 голос
/ 31 января 2011

Я нашел эту запись в блоге, которая может помочь: http://www.leavethatthingalone.com/blog/index.cfm/2005/6/11/Using-ColdFusion-to-convert-RTF-to-XHTML

Этот процесс преобразует файл rtf в xml, а затем вы можете использовать теги xml ColdFusion для чтения преобразованного файла.

Обработка

  1. загрузка библиотеки majix в соответствии с указаниями
  2. извлечение папки lib и сохранение на сервере ColdFusion
  3. добавление извлеченного местоположения в путь к классу ColdFusionи перезапустите сервер
  4. , следуя примеру кода в блоге

Обратите внимание, что эта библиотека автоматически создает файл xml.Если ваш входной файл - mydoc.rtf, ваш выходной файл xml - mydoc.xml

Пример выходных данных, созданных этим процессом:

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml:stylesheet type="text/xsl" href="mydoc.xsl"?>
<!-- generated by Majix from c:\doc.rtf on Mon Jan 31 12:04:03 EST 2011 using template MyDoc -->
<!DOCTYPE mydoc PUBLIC "-//TetraSix//DTD mydoc v1.1//EN" "mydoc.dtd" [
<!NOTATION wmf PUBLIC "-/TetraSix/NOTATION Windows Metafile/EN" "wmf">
<!ENTITY g001 SYSTEM "images/doc_001.wmf" NDATA wmf>
]>
<mydoc>


<p>This is my rtf document</p>

<p></p>

<p><graphic url='images/doc_001.wmf'/></p>

<p></p>

<p></p>
</mydoc>

Я создал свой собственный тестовый стенд с использованием связанной библиотеки с ColdFusion9. Без проблем.

Обратите внимание, что я пропустил вторую rereplacenocase из записи в блоге, так как это привело к неправильному XML-документу.

После того, как у вас есть XML-файл, вы можете прочитать его следующим образом:итак:

<cffile action="read" file="c:\doc.xml" variable="xmldoc">
<cfdump var="#xmlparse(xmldoc)#" />

В результате этого xml-объекта:

enter image description here

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