ONLYOFFICE 데스크톱 편집기에서 플러그인 개발을 활성화하는 방법
ONLYOFFICE 데스크톱 편집기에서 플러그인 개발을 설정하려면 로컬 .plugin 아카이브를 설치하고, 소스 폴더를 연결하고, 개발자 도구를 활성화한 다음 변경 사항을 테스트하십시오.
네. LibreOffice Calc는 LibreOffice 프로세스 내에서 Python 코드를 매크로로 실행할 수 있으며, LibreOffice Basic 매크로 또한 LibreOffice의 스크립팅 프레임워크를 통해 Python 함수를 호출할 수 있습니다. 열려 있는 스프레드시트의 셀을 읽거나 변경하는 것이 목표라면, 프로세스 내 Python 매크로를 사용하는 것이 일반적으로 가장 간단한 시작점입니다. 기존 Basic 매크로가 특정 작업을 재사용 가능한 Python 함수에 전달해야 하는 경우 Basic-to-Python 호출을 사용하세요.
이러한 접근 방식은 셸 명령으로 일반적인 시스템 Python 스크립트를 실행하는 것과는 다릅니다. 일반적인 외부 Python 프로세스는 Calc의 문서 객체를 자동으로 수신하지 않습니다. 통합 문서에 액세스하려면 LibreOffice를 통해 Python 매크로를 실행하거나 UNO를 통해 외부 프로세스를 LibreOffice 인스턴스에 의도적으로 연결해야 합니다.
LibreOffice는 자체 스크립팅 프레임워크를 통해 여러 스크립팅 언어를 지원합니다. Python 매크로에서 LibreOffice는 스크립트가 현재 문서와 해당 시트에 접근할 수 있도록 UNO 컨텍스트 객체를 제공합니다. Python 매크로는 .py모듈 내의 함수이며, 모듈의 g_exportedScripts튜플은 LibreOffice에서 실행 가능한 매크로로 표시해야 하는 함수들을 식별합니다.
파이썬 매크로는 Calc의 매크로 메뉴에서 독립적으로 실행될 수 있습니다. 반드시 Basic에서 호출할 필요는 없습니다. 이미 Basic 매크로가 있고 이를 파이썬에서 호출하도록 하려면 LibreOffice의 스크립트 공급자 또는 최신 ScriptForge Session.ExecutePythonScript서비스를 통해 두 언어를 연결할 수 있습니다.
예를 들어, 간단한 스프레드시트 정리 도구는 파이썬 매크로로 완전히 작성할 수 있습니다. 기존의 Basic 버튼이 이미 보고서를 실행하는 경우, 해당 버튼의 매크로는 그대로 두고 보고서 합계를 계산하는 파이썬 함수를 호출하도록 할 수 있습니다.
LibreOffice는 개인 Python 스크립트를 사용자 프로필에, 애플리케이션 전체에서 사용하는 스크립트는 설치 디렉터리에, 문서 스크립트는 문서와 함께 저장합니다. 처음 테스트할 때는 개인 스크립트를 사용하는 것이 편리합니다. 같은 사용자가 열어 놓은 모든 LibreOffice 문서에서 해당 스크립트를 사용할 수 있기 때문입니다. 하지만 개인 스크립트는 ODS 파일에 포함되지 않으므로 다른 사람이 스프레드시트를 열더라도 자동으로 수신되지는 않습니다.
LibreOffice 도움말의 "Python 스크립트 구성 및 위치"에서 시스템에 맞는 개인 Python 스크립트 폴더를 찾으세요. 일반적인 위치는 %APPDATA%\LibreOffice\4\user\Scripts\pythonWindows에서는 다음과 같고 ~/.config/libreoffice/4/user/Scripts/pythonLinux에서는 다음과 같습니다. 실제 프로필 경로는 다를 수 있으므로, 임의로 두 번째 프로필 디렉터리를 만들지 말고 설치 환경에 따라 설명된 위치를 사용하세요.
calc_tools.py개인 파이썬 스크립트 폴더에 파일을 생성하고 다음 간단한 예제를 추가하세요.
def double_a1(args=None):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.getCurrentController().getActiveSheet()
source = sheet.getCellRangeByName("A1")
target = sheet.getCellRangeByName("B1")
target.setValue(source.getValue() * 2)
g_exportedScripts = (double_a1,)
이 함수는 활성 시트의 A1 셀에 있는 숫자 값을 읽어 그 값의 두 배를 B1 셀에 씁니다. XSCRIPTCONTEXT이 함수는 실행 시 LibreOffice Python 매크로에 제공되며, LibreOffice 외부에서 동일한 파일을 실행할 때 일반적인 Python 전역 변수로 사용되지 않습니다. 이 공개 함수는 목록에 포함되어 있어 g_exportedScripts매크로 선택기에 표시됩니다.
파일을 저장한 다음 Calc를 열거나 돌아가서 도구 > 매크로 > 매크로 실행을 선택합니다 . LibreOffice 버전이나 플랫폼 번역에 따라 메뉴 레이블이 단수일 수 있습니다. 내 매크로 > calc_tools > double_a1을 선택 하고 실행합니다. 먼저 A1 셀에 숫자를 입력한 다음 B1 셀에 두 배가 된 값이 있는지 확인합니다. 모듈이 나타나지 않으면 파일 확장자가 올바른지 .py, 파일이 해당 프로필의 Python 폴더에 있는지, Python 스크립팅 지원이 설치되어 있는지 확인하십시오. 새 모듈을 추가한 후 LibreOffice를 다시 시작하면 스크립트 목록이 새로 고쳐질 수 있습니다.
Basic 코드를 Python 코드로 변환하려면, 개인 스크립트 폴더에 Python 모듈을 넣고 ScriptForge Session서비스를 통해 해당 함수를 호출하면 됩니다. 이 예제는 Python에서 두 값을 더하고 그 결과를 현재 Calc 시트의 B1 셀에 기록합니다.
에서 calc_tools.py함수를 정의하십시오:
def add_values(first, second):
return float(first) + float(second)
g_exportedScripts = (add_values,)
그런 다음 Calc에서 기본 매크로를 만들고 다음과 같이 사용하십시오.
Sub RunPythonHelper()
Dim session As Object
Dim result As Variant
Dim sheet As Object
session = CreateScriptService("Session")
result = session.ExecutePythonScript( _
session.SCRIPTISPERSONAL, _
"calc_tools.py$add_values", _
12, 30)
sheet = ThisComponent.CurrentController.getActiveSheet()
sheet.getCellRangeByName("B1").setValue(result)
End Sub
기본 매크로 선택기에서 실행하세요 RunPythonHelper. 호출이 성공하면 B1에 42가 표시됩니다. 스크립트 참조는 다음과 같은 형식을 따릅니다 module.py$function_name. 하위 폴더 또는 다른 저장 위치에 있는 모듈의 경우 해당 ScriptForge 버전에 대해 문서화된 구문 및 위치 상수를 사용하세요. 인수와 반환 값은 숫자, 문자열, 간단한 시퀀스와 같이 두 언어 모두에서 깔끔하게 표현할 수 있는 데이터 형식으로 유지하세요.
CreateScriptService최신 LibreOffice 버전에서는 ScriptForge 세션 도우미를 사용할 수 있지만, 이전 버전이나 배포 패키지 버전에서는 메뉴 이름과 포함된 구성 요소가 다를 수 있습니다. 이 서비스를 사용할 수 없는 경우, XScript스크립트 URI에서 를 가져와 호출하는 LibreOffice의 UNO 스크립트 제공자 방식을 사용하십시오. 매크로 위치를 변경하지 않고 코드 조각을 다른 위치에 복사하지 마십시오.
| 저장 | 가장 적합한 | 절충 |
|---|---|---|
| 내 매크로 / 사용자 프로필 | 문서 전반에 걸쳐 재사용 가능한 나만의 도구 | 스프레드시트를 전송할 때 자동으로 포함되지 않습니다. |
| 응용 프로그램 매크로 | 하나의 설치 환경에서 여러 사용자를 위한 스크립트 관리 | 일반적으로 설치 또는 유지 관리를 위해 관리자 권한이 필요합니다. |
| 문서 매크로 | 특정 문서와 연결되도록 의도된 코드 | 수신자는 매크로를 허용해야 할 수 있습니다. 대상 LibreOffice 버전에서 호환성 및 보안 동작을 테스트하십시오. |
팀 워크플로의 경우, 개인 매크로를 기반으로 통합 문서를 만들기 전에 수신자가 코드를 어떻게 받고 신뢰할지 결정해야 합니다. 파이썬 로직이 스프레드시트와 함께 제공되어야 하는 경우, 수신자가 사용하는 LibreOffice 버전과 동일한 버전에서 문서의 매크로 저장 방식과 보안 메시지가 제대로 작동하는지 테스트해야 합니다. 관리형 배포의 경우, 관리자는 사용자용 스크립트를 패키징하거나 조직의 일반적인 소프트웨어 관리 정책에 따라 확장 프로그램을 배포할 수 있습니다.
Scripts/python디렉터리에 모듈을 저장하십시오.g_exportedScripts. 단일 항목 튜플의 경우 튜플 끝에 쉼표가 포함되어야 합니다.XSCRIPTCONTEXT LibreOffice에서 실행되는 매크로에 대한 것이며, 시스템 python명령으로 동일한 파일을 실행할 때는 나타나지 않습니다. 매크로 실행기를 사용하거나 문서화된 UNO 연결을 설정하십시오.XSCRIPTCONTEXT가져온 모듈에 전달되지 않습니다. 가져온 모듈이 해당 전역 변수를 읽도록 기대하는 대신, 필요한 문서 또는 시트 객체를 도우미 함수에 전달하십시오.스프레드시트 사본과 알려진 입력값을 사용하여 테스트하십시오. Python 매크로가 실행 프로그램에 나타나는지 확인하고, 한 번 실행한 후 출력 셀을 직접 계산한 결과와 비교하십시오. Basic에서 Python으로의 호출의 경우, 간단한 입력값 하나를 테스트하고 반환된 값이 의도한 시트에 기록되는지 확인하십시오. 시트를 삭제하거나, 넓은 범위를 덮어쓰거나, 운영 체제 명령을 실행하는 스크립트는 시작하지 마십시오.
테스트가 성공적으로 완료되면 스크립트를 다른 컴퓨터에 설치하는 방법을 결정하고 필요한 Python 라이브러리 또는 LibreOffice 버전 관련 가정을 문서화하십시오. LibreOffice에 포함된 Python 환경은 프로세스 내 매크로에 사용되는 환경입니다. 별도의 시스템 Python 인터프리터용으로 설치된 패키지는 해당 환경에서 사용할 수 없을 수 있습니다. 다른 인터프리터의 패키지가 필요한 경우 외부 프로세스/UNO 방식을 사용하고 해당 연결을 신중하게 구성하십시오.
ONLYOFFICE 데스크톱 편집기에서 플러그인 개발을 설정하려면 로컬 .plugin 아카이브를 설치하고, 소스 폴더를 연결하고, 개발자 도구를 활성화한 다음 변경 사항을 테스트하십시오.
Calc에서 Python 매크로를 직접 사용하는 시점과 LibreOffice Basic에서 Python 함수를 호출하는 방법을 UNO 및 ScriptForge 예제를 통해 알아보세요.
Collabora Online CODE의 "WOPI 호스트 권한 없음" 오류를 해결하려면 WOPI 호스트 이름을 일치시키고, Docker 호스트 그룹을 구성하고, Nextcloud의 별도 IP 허용 목록을 확인하고, 연결을 검증하십시오.
Nextcloud에서 ONLYOFFICE의 "토큰이 유효하지 않습니다" 오류를 해결하려면 JWT 비밀 키, 인증 헤더, Docker 설정, 프록시 동작 및 커넥터 상태를 확인하십시오.
Nextcloud에서 ONLYOFFICE "문서를 저장할 수 없습니다" 오류를 해결하려면 콜백, 내부 URL, JWT, TLS, 프록시 라우팅, 로그 및 스토리지를 확인하십시오.
Collabora Online 소켓 연결 오류를 해결하려면 26.04 WebSocket 변경 사항, 프록시 경로, 업그레이드 헤더, 시간 초과, TLS 및 로그를 확인하십시오.
Collabora Online에서 다국어 맞춤법 검사를 활성화하려면 서버 사전을 추가하고, 언어 코드를 허용하고, 텍스트에 언어를 지정하고, 혼합 언어 문서를 테스트하십시오.
Create a reliable LibreOffice Writer mail merge with per-record images using Calc data, a named image placeholder, and a Basic macro, with troubleshooting and verification steps.
WOPI, 역방향 프록시, TLS, DNS, WebSockets 및 서버 간 연결 가능성을 확인하여 Collabora Online 문서 연결 오류를 진단하고 해결합니다.
ONLYOFFICE 데스크톱 편집기를 오프라인에서 사용하여 PDF 파일을 편집 가능한 DOCX 파일로 변환하세요. '다른 이름으로 저장' 단계를 따라 PDF 파일이 스캔되었는지 확인하고 서식을 검토하세요.