Формат буфера обмена для данных DOCX - PullRequest
1 голос
/ 02 сентября 2011

Мое Java-приложение генерирует документ в формате DOCX, используя DocX4J.Мне нужно отправить его в буфер обмена, чтобы вставить в Word.Я знаю, что Word будет использовать HTML, но я, скорее, не конвертирую DOCX в HTML (я не уверен, что DocX4J поддерживает его, и я скорее не потеряю форматирование).Какой формат буфера обмена (в терминах Java DataFlavor) я могу использовать для отправки данных DOCX в буфер обмена, чтобы Word это понял?

Я делаю то же самое с документом OpenOffice и для этого использую

DataFlavor odtFlavor = new DataFlavor("application/x-openoffice-embed-source-xml;"+
    "representationclass=java.io.InputStream");

Как мне представить сам документ DOCX?В случае OpenOffice ODT я передаю InputStream, созданный из файла ODT.

Я полагаю, что Дэвид Тилен задал аналогичный вопрос здесь: Какие форматы буфера обмена для Microsoft Office, где вы можете удалитьдиаграмма? но ответов нет.

1 Ответ

2 голосов
/ 10 сентября 2011

В худшем случае, docx4j может экспортировать в HTML, так что вы можете сделать это.

Или вы можете использовать RTF. Docx4j использует FOP для создания PDF, так что вы можете использовать вывод XSL FO для создания RTF (FOP может это сделать - ваш пробег может различаться).

Не уверен, какой из них даст вам лучшее качество. Возможно HTML (хотя, что происходит с изображениями?).

Или вы можете сделать базовый конвертер DOCX в RTF.

Может быть способ использовать формат docx.

Если вы копируете из Word и смотрите его в ClipSpy (двоичный файл доступен в загрузите исходный код из CodeProject), вы увидите данные в формате docx в OLE.

как перезагрузить сохраненные данные буфера обмена «Встроить источник»? говорит, что вы можете написать свой собственный "Вставить источник", передав Clipboard.SetData объекта потока

Кажется, зависит от того, хотите ли вы скопировать / вставить или перетащить / отпустить. См. Далее вашу ссылку В каких форматах буфера обмена для Microsoft Office можно разместить диаграмму? и http://social.msdn.microsoft.com/Forums/en/worddev/thread/84263fb9-61c2-424a-a294-a12f69fd6b1b

...