Создание автоматических ссылок в OpenOffice
Существуют ли макросы для OpenOffice, которые позволяют автоматически заменять определенные слова гиперссылками?
Каждый раз, когда я набираю слово "google" в OpenOffice, я хочу, чтобы это слово стало гиперссылкой на http://www.google.com/
1 ответ
На самом деле, вы не можете позволить OOo немедленно заменить слово гиперссылкой (без написания макроса), но вы можете достичь этого, комбинируя AutoReplace и распознавание URL:
- Вы можете определить замену правила автозамены
GoogleWWW
" от "http://www.google.com
"(как текст); - на втором шаге выберите Меню
Format
->AutoCorrect...
->Apply
заставить OOo заменить текст ссылки гиперссылкой.
Я предложилGoogleWWW
"как текст для замены, потому что если вы используете просто" Google ", замена будет происходить во второй раз при создании гиперссылки, в результате текст ссылки будет выглядеть как www.http://www.google.com.com
,
РЕДАКТИРОВАТЬ:
Вот источник простого макроса для замены произвольного выделенного текста гиперссылкой (используйте с осторожностью, это просто "доказательство концепции" - например, он не проверяет, содержит ли выделенный текст пробелы, поэтому результирующая ссылка может указывать на недействительный URL):
sub ReplaceByHyperlink
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
dim oSelection, oRange as object
dim strSelectedWord as String
rem ----------------------------------------------------------------------
rem get access to the document and grab first selection
oSelection = ThisComponent.CurrentController.Selection
oRange = oSelection(0)
rem ----------------------------------------------------------------------
rem rudimentary input check (selection available, text selected?)
If Not (HasUnoInterfaces(oRange, "com.sun.star.text.XTextRange")) Then
MsgBox "no text available"
exit sub
End if
strSelectedWord = oRange.getString
If Len(strSelectedWord) < 1 Then
MsgBox "No Text selected"
exit sub
End if
rem ----------------------------------------------------------------------
rem ok, there's some text selected, let's transform it...
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(4) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Hyperlink.Text"
args1(0).Value = strSelectedWord
args1(1).Name = "Hyperlink.URL"
args1(1).Value = "http://www." + LCase(strSelectedWord) + ".com/"
args1(2).Name = "Hyperlink.Target"
args1(2).Value = ""
args1(3).Name = "Hyperlink.Name"
args1(3).Value = strSelectedWord
args1(4).Name = "Hyperlink.Type"
args1(4).Value = 1
dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args1())
end sub
Вы можете назначить этот макрос на сочетание клавиш, используя Tools
-> Customize
-> Keyboard
, например, SHIFT+CTRL+G. Это, кстати, вам не нужно определять AutoCorrect
править.