Не сохраняется файл в формате Word в OpenOffice

Автор Борис_С, 13 января 2022, 16:03

0 Пользователи и 2 гостей просматривают эту тему.

Борис_С

Всем доброго дня!
Написал макрос сохранения документа в формате Word.

Sub Main
On Error GoTo ExErrorHandler
Dim oDoc As Object ' Документ
Dim cFnm As String
Dim fileName As String

oDoc = ThisComponent
cFnm = convertFromURL(oDoc.URL)
aFnm = Split(cFnm,getPathSeparator())
aFnm(Ubound(aFnm)) = "Новый файл.docx"
' Зададим формат для сохранения
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "FilterName"
args(0).Value = "MS Word 2007 XML" 'формат docx
' Сохраним
fileName = convertToURL(join(aFnm,getPathSeparator()))
oDoc.storeToURL(fileName, args())
        Exit Sub
ExErrorHandler:
  MsgBox "Ошибка сохранения файла." + CHR$(10) + Error(), MB_ICONSTOP   
  On Error GoTo 0
End Sub

Мне нужно, чтобы макрос работал в LO и в OO.
Все прекрасно работает в LibreOffice.
В OpenOffice  получаю ошибку: "Вызвано исключение Type: com.sun.star.task.ErrorCodeIOExceptionMessage: ."
Буду признателен за любую помощь.

bigor

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут


bigor

А при ручном сохранении у него есть выбор "MS Word 2007 XML", у меня 4.0.1 он не может сохранять в таком формате. Про 4.1.11 не знаю
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

mikekaganski

Цитата: Борис_С от 13 января 2022, 16:03

"MS Word 2007 XML" 'формат docx

Мне нужно, чтобы макрос работал в LO и в OO.
Все прекрасно работает в LibreOffice.
В OpenOffice  получаю ошибку: "Вызвано исключение Type: com.sun.star.task.ErrorCodeIOExceptionMessage: ."

Вам достаточно просто написать код экспорта в docx для Apache OpenOffice, и всё заработает.
С уважением,
Михаил Каганский

kompilainenn

Цитата: mikekaganski от 13 января 2022, 16:22Вам достаточно просто написать код экспорта в docx для Apache OpenOffice, и всё заработает.
:DDDDDDD
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Борис_С

Цитата: mikekaganski от 13 января 2022, 16:22Вам достаточно просто написать код экспорта в docx для Apache OpenOffice, и всё заработает.
А как это? Я открыл ссылку. Там нет никакого кода.

Борис_С

Цитата: Bigor от 13 января 2022, 16:19А при ручном сохранении у него есть выбор "MS Word 2007 XML", у меня 4.0.1 он не может сохранять в таком формате. Про 4.1.11 не знаю
В 4.1.11 можно сохранять в таких word форматах:
MS Word 97/2000/XP
MS Word 95
MS Word 6.0,
а также в формате .rtf
На странице https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
описаны все FilterName для сохранения документа в различных форматах, но там пишут, что список
больше не актуален, начиная с OpenOffice 4.1.x. 
Где найти актуальный список я не знаю.

kompilainenn

Цитата: Борис_С от 13 января 2022, 17:42А как это?
Это взять и на С++ написать фильтр экспорта для АОО, емнип, можно взять готовый из ЛО и замержить в АОО, лицензия АОО такое позволяет
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Цитата: kompilainenn от 13 января 2022, 21:29емнип, можно взять готовый из ЛО и замержить в АОО, лицензия АОО такое позволяет

Нет. Копилефтная лицензия MPL2 требует, чтобы код, куда вставляют правки с ней, был не меньше чем MPL2. Это так же, как если к нам пытаться внести код под GPL.
С уважением,
Михаил Каганский

Борис_С

В Open Office нельзя сохранять файлы в формате .xlsx и .xlsb, но можно в формате .xls
Для этого нужно использовать FilterName = "MS Excel 97"   (формат документа - Excel 97–2003)
Также в Open Office нельзя сохранять файлы в формате .docx и .rtf, но можно в формате .doc
Для этого нужно использовать FilterName = "MS Word 97"   (формат документа - Word 97–2003
Этой информации нет на странице  https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
Определил это с помощью тестов.

Yakov

Цитата: Борис_С от 25 января 2022, 15:32Также в Open Office нельзя сохранять файлы в формате .docx и .rtf, но можно в формате .doc
Совсем не так! В docx в Apache Open Office сохранить нельзя, а вот в .rtf можно, но настоятельно не рекомендуется, так как возможна потеря форматирования или в отдельных случаях порча кодировки документа.

Борис_С

Цитата: Борис_С от 25 января 2022, 15:32Также в Open Office нельзя сохранять файлы в формате .docx и .rtf, но можно в формате .doc
Я это и написал.