Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Вс Дек 09, 2007 17:05 Заголовок сообщения: Межплатформенный конвертор для OOo Writer |
|
|
Выложил новый кроссплатформенный конвертор ExportToFB21 для OOo Writer.
Исходные коды - от Thander`a (http://ifolder.ru/3048108.). Сначала я передеывал его "под себя", потом решил выложить для народного пользования. Но перед этим решил "списаться" с Thander`ом, чьи коды я использовал и переделывал. Он истинный сторонник опен соурсе - дал добро на использование его кодов!
Мой страничка - http://dikbsdsda.mylivepage.ru
Сайт конвертера ExportToFB21 Version 1.0 - http://dikbsdsda.mylivepage.ru/file
Здесь лежат файлы:
1. ExportToFB21.zip - КОДЫ КОНВЕРТОРА
2. ExportToFB21.oxt.zip - конвертор в виде расширения.
3. fb21_styles.ott.zip - шаблон стилей для разбивки структуры документа.
4. ExportToFB21_Test.odt.zip - тестовый документ - тестирования конвертора и демонстрация основных его возможностей.
5. ExportToFB21_Help.doc.zip - Подробная иллюстрированная справка по установке, работе, возможностям конвертора, а также планах по дальнейшему его развитию.
6. ExportToFB21_Help.zip - тоже самое, но в формате pdf.
Сейчас заканчиваю ExportToFB21 Version 2.0 - полностью написанный "с нуля" парсер, поддерживающий к возможностям версии 1.0 экспорт таблиц и тегов картинок (сами картинки, пока не экспортируются - надо думать над скриптом...). Скоро выложу и его.
Лицензия ExportToFB21 - GPL - то, есть можно свободно использовать, развивать на базе его кодов свои программы, но тоже под лицензией GPL.
Планы по развитию смотри в справке ExportToFB21_Help.
Если есть какие идеи - пишите. |
|
Вернуться к началу |
|
|
Nick222 Зрелый участник форума
Зарегистрирован: 13.12.2005 Сообщения: 145 Откуда: Москва, Россия
|
Добавлено: Вс Дек 09, 2007 17:41 Заголовок сообщения: |
|
|
Существует архиваторный плагин для Тотал Коммандер (есть также здесь на сайте), который позволяет добавлять-убирать в FB2 картинки - может оттуда часть кода взять?
Или это не то? _________________ Всё, что я говорю (кроме специально оговоренных случаев) - ИМХО.
С уважением и благодарностью, Ник. |
|
Вернуться к началу |
|
|
der Uhu Новенький участник форума
Зарегистрирован: 09.12.2007 Сообщения: 2
|
Добавлено: Вс Дек 09, 2007 20:01 Заголовок сообщения: Re: Межплатформенный конвертор для OOo Writer |
|
|
Нет их там Только один: 1776_ExportToFB21_Help.pdf.zip |
|
Вернуться к началу |
|
|
Nick222 Зрелый участник форума
Зарегистрирован: 13.12.2005 Сообщения: 145 Откуда: Москва, Россия
|
Добавлено: Вс Дек 09, 2007 21:05 Заголовок сообщения: |
|
|
Подтверждаю... _________________ Всё, что я говорю (кроме специально оговоренных случаев) - ИМХО.
С уважением и благодарностью, Ник. |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Пн Дек 10, 2007 20:28 Заголовок сообщения: |
|
|
der Uhu писал(а): | Нет их там Только один: 1776_ExportToFB21_Help.pdf.zip |
Забыл проверить, войдя как другой юзер на сайт.
Сейчас поправил права доступа. Вроде теперь все видно - и папка и файлы в ней. Если опять что-то не то - напишите, посмотрю...
Nick222 писал(а): | Существует архиваторный плагин для Тотал Коммандер (есть также здесь на сайте), который позволяет добавлять-убирать в FB2 картинки - может оттуда часть кода взять?
Или это не то? |
Я, к сожалению, ничего не знаю про этот плагин. Где-бы взять на него ссылочку? |
|
Вернуться к началу |
|
|
Nick222 Зрелый участник форума
Зарегистрирован: 13.12.2005 Сообщения: 145 Откуда: Москва, Россия
|
Добавлено: Пн Дек 10, 2007 21:21 Заголовок сообщения: |
|
|
WCX FB2 1.0 - архиваторный плагин для Тотал Коммандер просмотра и добавления рисунков в книги FB2. Не добавляет свойство contenttype!! Бесплатно. 47 Кб. Автор: Дмитрий Рошка aka bookmist. 09.08.2007. http://bookmist.ucoz.ru/load _________________ Всё, что я говорю (кроме специально оговоренных случаев) - ИМХО.
С уважением и благодарностью, Ник. |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Ср Дек 12, 2007 12:26 Заголовок сообщения: |
|
|
1. Обновил файлы конвертора ExportToFB21.zip и ExportToFB21.oxt.zip - исправил один баг - на некоторых сложных структурах документа при смежных уровнях заголовков перед очередным заголовков не вставляловь </section>. Теперь вроде бы все нормально. Исправления там же: http://dikbsdsda.mylivepage.ru/file
в папке ExportToFB21 Version 1.0. Эти новые файлы помечены, как Version 1.1.
2. Дописал конвертор ExportToFB21 Version 2.0 с абсолютно новым парсером - сейчас тестирую и дописываю тестовый документ и справку. На днях выложу туда же, только в папку ExportToFB21 Version 2.0.
Когда выложу Version 2.0, то поддержка и сопровождение Version 1.0. прекратится.
Nick222 писал(а): | WCX FB2 1.0 - архиваторный плагин для Тотал Коммандер |
Спасибо, скачал, посмотрю |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Вт Дек 18, 2007 13:28 Заголовок сообщения: |
|
|
Выложил новую версию конвертора ExportToFB21 Version 2.0 - http://dikbsdsda.mylivepage.ru/file
+ Экспорт таблиц с заголовками и форматированием и выравниванием ячеек
+ Экспорт текстовых полей
+ Экспорт текстовыъ врезок как просто текст или цитату или таблицу
+ Экспорт тегов картинок и inline картинок (Буквиц), встроенных в папаграф (сами картинки пока не экспортируются - пока не знаю как, думаю...)
+ Многое другое - смотри справку там же.
Существенный недостаток конвертора - на очень болших документах с включенной опцией преобразования проблемных символов конвертация длится несколько минут и более. Поэтому, если вы уверены, что в документе нет ни &, ни >, ни<, то отключите эту опцию в настройках - время работы сократиться в несколько раз!
Плагин для тотала в плане посмотреть, как работается с картинками не подходит - там совсем другой принцип |
|
Вернуться к началу |
|
|
Thunder Новенький участник форума
Зарегистрирован: 13.06.2007 Сообщения: 11
|
Добавлено: Вт Дек 18, 2007 15:41 Заголовок сообщения: |
|
|
Тут небольшой скриптик наваял (опять же для себя ). Короче, у меня навалом книг в текстовом формате, еще те, что по фидошной файл-эхе ходили. Форматирование там еще то...
Скрипт удаляет лишние пробелы, организовывает параграфы ( я так думаю ). Если раскомментировать строку ApplyParaStyles(), то еще и будет пытаться определить главы и приклеить к ним стили. А... еще он заменяет тире (вернее минус) на нормальное тире (как там это называется), в диалогах ставит длинное тире.
Ну а кому еще какие символы нужно находить и заменять на что-то, то их легко добавить в:
sChars - что ищем, sReplaceWith - на что меняем.
Может сгодится кому. Скрипт я писал для использования в консоли, чтобы преобразовать сразу кучу файлов. Вот шелл скрипт (ООО скрипт пойдет ниже):
Код: |
#! /bin/bash
filelist=$(ls $1)
for i in /home/alex/tmp/books/*.doc
do
echo "Преобразование $i"
soffice -invisible "macro:///ConvertingToOOo.Converting.SaveAsOOO($i)"
done
|
Скрипт ООо:
Код: |
' Сохранить документ в формате OpenOffice 2.
Public oDoc
Sub SaveAsOOO(cFile)
' практически совпадает с SaveAsPDF
cURL = ConvertToURL( cFile )
' msgbox cFile
oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, Array(MakePropertyValue( "Hidden", True ),))
' Расширение нового файла выбирается на основании расширения
' исходного файла, переведённого в нижний регистр.
Select Case LCase(Right(cFile,3))
Case "ppt" ' PowerPoint file.
cFileExt = "odp"
Case "doc" ' Word file.
cFileExt = "odt"
Case "xls" ' Excel file.
cFileExt = "ods"
Case Else
cFileExt = "xxx"
End Select
cFile = Left( cFile, Len( cFile ) - 3 ) + cFileExt
cURL = ConvertToURL( cFile )
oDoc.storeAsURL( cURL, Array() )
FormattingText()
' ApplyParaStyles()
oDoc.store()
oDoc.close( True )
End Sub
Function MakePropertyValue( Optional cName As String,Optional uValue ) As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
Sub FormattingText
Dim oReplace As Object
Dim sChars() As String, sReplaceWith() As String
Dim i As integer
sChars() = Array("^ {2,}", "$", chr(10), " {2,}", " {1,}$", """\<",_
"^""", " """, """", "\.\.\.", "\>-\<", "^-",_
"\>- ", " -\<", "-", "^$")
sReplaceWith() = Array(chr(10), " ", "\n", " ", "", chr(171), chr(171), chr(171),_
chr(187), chr(8230), chr(8211), chr(8213),_
" " & chr(8213) & " ", " " & chr(8213) & " ", chr(8213), "")
' oDoc = ThisComponent
oReplace = oDoc.createReplaceDescriptor
oReplace.SearchRegularExpression = True
For i = 0 to UBound(sChars())
oReplace.SearchString = sChars(i)
oReplace.ReplaceString = sReplaceWith(i)
oDoc.ReplaceAll(oReplace)
Next
End Sub
Sub ApplyParaStyles
Dim oCur As Object
LoadStyleFamilies
oCur = oDoc.Text.createTextCursor
oCur.gotoStart(false)
oCur.ParaStyleName = "Author"
oCur.gotoNextParagraph(false)
oCur.ParaStyleName = "Book Title"
oCur.gotoNextParagraph(false)
Do
oCur.ParaStyleName = "Standard"
Loop While oCur.gotoNextParagraph(false)
Find("^Часть {1,}", "Part")
Find("^Глава ", "Chapter")
Find("^[0-9]{1,}", "Chapter")
Find("^[:upper:]{2,}", "Chapter")
Find("Пролог|Эпилог|Заключение|Глоссарий", "Chapter")
oCur.gotoEnd(false)
oDoc.Text.insertControlCharacter(oCur, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
End Sub
Function Find (sString As String, sStyle As String, Optional bStyle As Boolean)
Dim oDesc As Object, oFound As Object
' Dim oDoc As Object
If isMissing(bStyle) Then
bStyle = False
End If
' oDoc = ThisComponent
oDesc = oDoc.createSearchDescriptor
With oDesc
.SearchString = sString
.SearchStyles = bStyle
.SearchRegularExpression = True
.SearchCaseSensitive = True
End With
oFound = oDoc.findFirst(oDesc)
Do While Not isNull(oFound)
oFound.ParaStyleName = sStyle
oFound = oDoc.findNext(oFound.End, oDesc)
Loop
End Function
Sub LoadStyleFamilies
'Загрузка стилей из файла шаблона. Здесь загружаются стили параграфа.
' Dim oDoc As Object
Dim vLoadProperties(4) As New com.sun.star.beans.PropertyValue
Dim sUrl As String
Dim oStyleFamilies As Object
' oDoc = ThisComponent
vLoadProperties(0).Name = "OverwriteStyles"
vLoadProperties(0).Value ="False"
vLoadProperties(1).Name = "LoadCellStyles"
vLoadProperties(1).Value = "False"
vLoadProperties(2).Name = "LoadTextStyles"
vLoadProperties(2).Value = "True"
vLoadProperties(3).Name = "LoadFrameStyles"
vLoadProperties(3).Value = "False"
vLoadProperties(4).Name = "LoadPageStyles"
vLoadProperties(4).Value = "False"
vLoadProperties(0).Name = "LoadNumberingStyles"
vLoadProperties(4).Value = "False"
sUrl = "file:///home/alex/.openoffice.org2/user/template/ebook.ott"
oStyleFamilies = oDoc.getStyleFamilies
oStyleFamilies.loadStylesFromURL(sUrl, vLoadProperties())
SetStructNumbering()
End Sub
Function SetStructNumbering
'Установка нумерации структур. В данном случае структуру параграфов.
Dim oRules As Object, oRule As Object, oProp As Object
Dim i As Integer, j As Integer
Dim sStyles() As String
sStyles = Array("Author", "Book Title", "Part", "Chapter")
oRules = oDoc.getChapterNumberingRules
For i = 0 To 3
oRule = oRules.getByIndex(i)
For j = LBound(oRule()) To UBound(oRule())
oProp = oRule(j)
If oProp.Name = "HeadingStyleName" Then
oProp.Value = sStyles(i)
End If
oRule(j) = oProp
Next j
oRules.ReplaceByIndex(i, oRule())
Next i
End Function
|
|
|
Вернуться к началу |
|
|
Nick222 Зрелый участник форума
Зарегистрирован: 13.12.2005 Сообщения: 145 Откуда: Москва, Россия
|
Добавлено: Вт Дек 18, 2007 19:04 Заголовок сообщения: |
|
|
Круто - а нельзя скрипт для ООо всунуть в основной конвертор как "дополнительный бонус" (отдельным файлом) - чтобы автоматом цеплялся, или руками хотя бы (но не копи-паст и т.п.)?
Спасибо _________________ Всё, что я говорю (кроме специально оговоренных случаев) - ИМХО.
С уважением и благодарностью, Ник. |
|
Вернуться к началу |
|
|
Thunder Новенький участник форума
Зарегистрирован: 13.06.2007 Сообщения: 11
|
Добавлено: Ср Дек 19, 2007 14:57 Заголовок сообщения: |
|
|
Nick222 писал(а): | ...а нельзя скрипт для ООо всунуть в основной конвертор как "дополнительный бонус" (отдельным файлом)... |
С этим вопросом к автору.
А этот макрос могу выложить куда-нить. Например, DikBSD'у. У него мыло мое есть. Если у него будет желание, то... Есть два вида макроса: первый, который выложен здесь, работает в консоли, второй запускается из ООо. Макрос, который выложен здесь, после небольшой модификации можно тоже будет запускать в ООо.
Вчера не написал, этот макрос так же исправляет кавычки на нормальные <<. Может еще что-то делает, я просто уже забыл. |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Вс Дек 23, 2007 13:53 Заголовок сообщения: |
|
|
Только сейчас прочитал сообщения - все дела, дела...
Thunder писал(а): | второй запускается из ООо. |
Thunder, рад тебя видеть!
Скинь, пожалуйста, скрипт для ООо- посмотрю.
И еще - если ты все еще развиваешь свой конвертор, то может объединим усилия - скрестим что вышло у меня и у тебя?
У меня пока с картинками туго - может перевести конвертор на JavaScript или Python, если там есть возсожность преобразования картинок (подозреваю, что через DOM)? Хотя и там придется изучать (я все больше на С++ QT). |
|
Вернуться к началу |
|
|
Thunder Новенький участник форума
Зарегистрирован: 13.06.2007 Сообщения: 11
|
Добавлено: Вс Дек 23, 2007 15:54 Заголовок сообщения: |
|
|
DikBSD
Ушло мылом. |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Вс Дек 23, 2007 18:10 Заголовок сообщения: |
|
|
Спасибо. Все-таки подумай, пожалуйста над "слиянием" прог и усилий, ладно?
Добавлено спустя 13 минут 45 секунд:
Thunder, я написал этот ответ не проверив почту...
По электронке послал тебе ответ. Еще раз спасибо за макрос и за исходные коды. Не пропадай надолго - твоя помощь очень нужна! |
|
Вернуться к началу |
|
|
DikBSD Зрелый участник форума
Зарегистрирован: 14.11.2007 Сообщения: 108 Откуда: Рязань
|
Добавлено: Чт Дек 27, 2007 13:01 Заголовок сообщения: |
|
|
ВЫложил новый релиз конвертора - туда же http://dikbsdsda.mylivepage.ru/file , папка ExportToFB2.1 Version 2.1
1. Добавлена возможность указывать % жанра.
2. Изменен список жанров – выбор не в виде кода, а по названию жанра. Так удобнее.
3. Исправил обработку текстовых врезок – раньше, если попадались Линии – конвертор аварийно завершал работу.
4. Отлавливается нумерация параграфов или маркеры и экспортируется, как символ «•» перед параграфом.
5. Ввел сохранение настроек диалога «Настройки» и возможность установок «по умолчанию».
6. Ввел возможность сохранять и загружать профиль автора документа и Source OSR (кнопки «>>» и «<<» соответственно).
7. При открытии диалога экспорта профиль автора документа, если он был создан, автоматически загружается, заполняя соответствующие поля. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|