Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

27 Февраль 2021, 22:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как получить в строковую переменную имя шрифта?  (Прочитано 7456 раз)
0 Пользователей и 1 Гость смотрят эту тему.
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Стартовое сообщение: 11 Март 2012, 22:11 »

Как получить в строковую переменную имя шрифта в выделенном тексте в Write Basic?
« Последнее редактирование: 12 Март 2012, 09:30 от tvitaly1 » Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #1: 12 Март 2012, 10:26 »

По мотивам вашего предыдущего вопроса и ответа Клио
Код:
TextFontName = selection.getByIndex(0).CharFontName
и т.д. и т.п.

Но! А если в выделенном тексте используются несколько разных шрифтов?

PS. Нужно осваивать работу с расширением Xray. И сможете сами отвечать на свои вопросы.
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #2: 12 Март 2012, 14:04 »

По мотивам вашего предыдущего вопроса и ответа Клио
Код:
TextFontName = selection.getByIndex(0).CharFontName
и т.д. и т.п.

Но! А если в выделенном тексте используются несколько разных шрифтов?

PS. Нужно осваивать работу с расширением Xray. И сможете сами отвечать на свои вопросы.

Спасибо большое! А где посмотреть описание объектов на русском?

Вообщем меня интересовал только 1 фрагмент текст с только одним выделенным шрифтом, следующей функцией я вполне могу это определить
Код:
function FontName as string
 Dim oCurrentSelection As Variant
 Dim nCount As Long
 Dim i as long
oCurrentSelection = ThisComponent.getCurrentSelection()
nCount = oCurrentSelection.getCount()

Fontname =""
for i=0 to nCount-1
  if i>0 then
       Fontname = Fontname+";"
      end if
Fontname = Fontname+ oCurrentSelection.getByIndex(i).CharFontName
     next i
     
end Function

Но в идеале мне хотелось бы иметь функцию типа запись?

Как объявить запись?
 













Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #3: 12 Март 2012, 14:57 »

Цитата:
Но в идеале мне хотелось бы иметь функцию типа запись?

Как объявить запись?
 

"Запись" в смысле - type Record?
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #4: 13 Март 2012, 13:24 »

По мотивам вашего предыдущего вопроса и ответа Клио
Код:
TextFontName = selection.getByIndex(0).CharFontName
и т.д. и т.п.
Растроен я на это определения, куча случав, когда в абзаце только один шрифт, а функция правильно шрифт не определяет!


Но! А если в выделенном тексте используются несколько разных шрифтов?

PS. Нужно осваивать работу с расширением Xray. И сможете сами отвечать на свои вопросы.

Спасибо большое! А где посмотреть описание объектов на русском?

Вообщем меня интересовал только 1 фрагмент текст с только одним выделенным шрифтом, следующей функцией я вполне могу это определить
Код:
function FontName as string
 Dim oCurrentSelection As Variant
 Dim nCount As Long
 Dim i as long
oCurrentSelection = ThisComponent.getCurrentSelection()
nCount = oCurrentSelection.getCount()

Fontname =""
for i=0 to nCount-1
  if i>0 then
       Fontname = Fontname+";"
      end if
Fontname = Fontname+ oCurrentSelection.getByIndex(i).CharFontName
     next i
     
end Function

Но в идеале мне хотелось бы иметь функцию типа запись?

Как объявить запись?
 














Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #5: 13 Март 2012, 13:26 »

Растроен я на это определение, куча случав, когда в абзаце только один шрифт, а функция правильно шрифт не определяет!
Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #6: 13 Март 2012, 14:57 »

Растроен я на это определение, куча случав, когда в абзаце только один шрифт, а функция правильно шрифт не определяет!

А вот теперь нужно показать ваш файл с этой ошибкой, чтобы понять в чем ошибка.
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #7: 13 Март 2012, 19:28 »

Растроен я на это определение, куча случав, когда в абзаце только один шрифт, а функция правильно шрифт не определяет!
пробелы символом Mangal не бъются, заменяются на Tahoma

А вот теперь нужно показать ваш файл с этой ошибкой, чтобы понять в чем ошибка.
пробелы символом Mangal не бъются, заменяются на Tahoma  Обеспокоенный
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #8: 13 Март 2012, 20:50 »


пробелы символом Mangal не бъются, заменяются на Tahoma  Обеспокоенный
Но вот тут же показывает Mangal не смотря на пробелы!!!

Почему при этом эта функция выдает пустую строку?
Код:
Type ff
Name1 as String
End Type

function Font
 Dim oCurrentSelection As Variant
 Dim nCount As Long
 Dim i as long
   oCurrentSelection = ThisComponent.getCurrentSelection()
   nCount = oCurrentSelection.getCount()
      Font = CreateObject("ff")
      Font.Name1 =""
       
       for i=0 to nCount-1
        if i>0 then
          Font.Name1 = Font.Name1+";"
         end if
         Font.Name1 = Font.Name1+ oCurrentSelection.getByIndex(i).CharFontName
        next i
       
end Function
Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #9: 13 Март 2012, 21:23 »

Потому, что в выделении несколько шрифтов.
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #10: 13 Март 2012, 21:34 »

Потому, что в выделении несколько шрифтов.
Это понятно, но может быть можно определить имя шрифта не взирая на пробелы?
В Ворде в таком случае программно определяется Mangal.
Название шрифта можно получить непосрественно из combobox?
« Последнее редактирование: 13 Март 2012, 21:36 от tvitaly1 » Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #11: 13 Март 2012, 21:47 »

В Ворде шрифт выделенного текста может определяться по первому символу в выделении.
Если хотите, можете делать также.
Записан
tvitaly1
Участник
**
Offline Offline

Сообщений: 28


« Ответ #12: 14 Март 2012, 00:58 »

 В прикрепленных файлах абзац, в котором используется только Mangal, и файл со шрифтом.
 
Во всем абзаце щрифт неопределяется, но если проверять каждое слово в отдельности или каждый пробел в отдельности, показывает Mangal.

Так что неопределяется правильно для юникода во write. Грустный

[вложение удалено Администратором]
« Последнее редактирование: 15 Март 2012, 06:16 от tvitaly1 » Записан
neft
Форумчанин
***
Offline Offline

Сообщений: 189


« Ответ #13: 14 Март 2012, 09:37 »

Установить для выделения нужный шрифт.
Если нужно, то CharFontName => CharFontNameComplex (зависит от того, как устанавливался шрифт).



[вложение удалено Администратором]
« Последнее редактирование: 14 Март 2012, 11:00 от neft » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!