Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Межплатформенный конвертор для OOo Writer
На страницу 1, 2, 3, 4, 5  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB
Предыдущая тема :: Следующая тема  
Автор Сообщение


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 Ответить с цитатой

DikBSD писал(а):

Мой страничка - http://dikbsdsda.mylivepage.ru
Сайт конвертера ExportToFB21 Version 1.0 - http://dikbsdsda.mylivepage.ru/file
Здесь лежат файлы:
. . . . . .

Нет их там Sad Только один: 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    Заголовок сообщения: Ответить с цитатой

Тут небольшой скриптик наваял (опять же для себя Wink ). Короче, у меня навалом книг в текстовом формате, еще те, что по фидошной файл-эхе ходили. Форматирование там еще то...

Скрипт удаляет лишние пробелы, организовывает параграфы ( я так думаю Wink ). Если раскомментировать строку 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    Заголовок сообщения: Ответить с цитатой

Круто - а нельзя скрипт для ООо всунуть в основной конвертор как "дополнительный бонус" (отдельным файлом) - чтобы автоматом цеплялся, или руками хотя бы (но не копи-паст и т.п.)?

Спасибо Smile
_________________
Всё, что я говорю (кроме специально оговоренных случаев) - ИМХО.
С уважением и благодарностью, Ник.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Thunder
Новенький участник форума

Новенький участник форума

Зарегистрирован: 13.06.2007
Сообщения: 11

СообщениеДобавлено: Ср Дек 19, 2007 14:57    Заголовок сообщения: Ответить с цитатой

Nick222 писал(а):
...а нельзя скрипт для ООо всунуть в основной конвертор как "дополнительный бонус" (отдельным файлом)...


С этим вопросом к автору. Wink

А этот макрос могу выложить куда-нить. Например, DikBSD'у. У него мыло мое есть. Если у него будет желание, то... Есть два вида макроса: первый, который выложен здесь, работает в консоли, второй запускается из ООо. Макрос, который выложен здесь, после небольшой модификации можно тоже будет запускать в ООо.

Вчера не написал, этот макрос так же исправляет кавычки на нормальные <<. Может еще что-то делает, я просто уже забыл. Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


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    Заголовок сообщения: Ответить с цитатой

Спасибо. Все-таки подумай, пожалуйста над &quot;слиянием&quot; прог и усилий, ладно?

Добавлено спустя 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. При открытии диалога экспорта профиль автора документа, если он был создан, автоматически загружается, заполняя соответствующие поля.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB Часовой пояс: GMT + 3
На страницу 1, 2, 3, 4, 5  След.
Страница 1 из 5

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group