OpenOffice에서 자동 링크 만들기


답변:


1

AFAIK를 사용하면 오픈 오피스가 매크로를 작성하지 않고 하이퍼 링크로 단어를 즉시 바꿀 수는 없지만 자동 교체와 URL 인식을 결합하여이를 달성 할 수 있습니다.

  • " GoogleWWW"를 " http://www.google.com"(텍스트)로 바꾸는 자동 교체 규칙을 정의 할 수 있습니다 .
  • 두 번째 단계에서 메뉴 Format-> AutoCorrect...-> Apply를 선택 하여 링크 텍스트를 하이퍼 링크로 바꾸십시오.

" 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-> KeyboardSHIFT+ CTRL+ G, 예를 들어. 이렇게하면 AutoCorrect규칙 을 정의 할 필요가 없습니다 .


해당 매크로가 이미 존재하는 경우이 기능을 수행 할 수있는 매크로를 사용하고 싶습니다.
앤더슨 그린

@AndersonGreen : 그런 매크로에 대한 코드를 추가했습니다.
tohuwawohu

텍스트를 모든 종류의 링크로 변경하는 함수를 만들 수 있습니까? (즉, setLink (google, google.com ))
Anderson Green

@AndersonGreen : 가능합니다. 매크로가 선택한 텍스트를 www. [selection] .com 하이퍼 링크로 변경하도록 답변을 수정했습니다. 그러나 하이퍼 링크 대상의 일부로 텍스트 (예 : 공백 등)를 허용하므로 더 많은 작업이 필요합니다. 선택한 텍스트가 유효한 호스트 이름인지 확인할 수 있습니다.
tohuwawohu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.