소스 코드를 수정하지 않고 Collabora CODE 툴바를 사용자 지정하는 방법

Collabora Online Development Edition(CODE) 편집기를 간소화하려면 전체 레이아웃에서 '간소화' 또는 '탭'을 선택한 다음 WOPI 호스트의 PostMessage 통합 기능을 사용하여 개별 명령, 버튼 또는 노트북바 탭을 숨길 수 있습니다. 툴바를 접는 것은 편리한 보기 변경 방법이며, 호스트를 통해 컨트롤을 숨기는 것은 각 편집 세션에서 일관된 인터페이스를 유지하려는 경우에 더 적합합니다.

어떤 CODE 인터페이스를 사용자 정의해야 할까요?

CODE는 기존 메뉴와 툴바를 사용하는 컴팩트 레이아웃과 노트북바를 사용하는 탭 레이아웃을 제공합니다. 먼저 사용자가 어떤 레이아웃을 보게 될지 확인하세요. 툴바 버튼 ID와 노트북바 탭 ID는 서로 바꿔 사용할 수 없습니다. Collabora 지원 지침에 따르면 이전 이름인 `toolbar`와 `notebookbar`는 classic21.11 시리즈부터 더 이상 사용되지 않고 `notebookbar`와 `notebookbar`로 대체되었습니다. Collabora notebookbar인터페이스 구성 지침을 참조하세요 .compacttabbed

Collabora CODE는 Writer 문서 위에 파일, 홈, 삽입, 레이아웃, 보기 및 도움말 탭이 있는 탭 형식 인터페이스를 제공합니다.
탭 레이아웃은 이름이 지정된 탭 아래에 편집 도구를 그룹화합니다. 도움말 탭은 Hide_NotebookTab의 대상이 될 수 있습니다.
Collabora CODE의 간결한 인터페이스로, 좁은 도구 모음 위에 파일, 편집, 보기, 삽입, 서식, 도구 및 도움말 메뉴가 표시됩니다.
컴팩트 레이아웃은 별도의 메뉴 행과 더 작은 버튼 스트립을 사용하므로 메뉴 및 버튼 컨트롤에는 서로 다른 식별자가 필요합니다.

서버 기본 설정이나 사용자 세션을 변경해야 할까요?

대부분의 사용자가 동일한 레이아웃으로 시작해야 하는 경우에만 서버 기본값을 변경하십시오. 자체 관리 설치 user_interface.mode의 경우 설정 에서 , , 또는 를 coolwsd.xml사용할 수 있습니다 . 구성을 백업한 다음 새 XML 요소를 추가하는 대신 기존 값을 변경하십시오.defaultcompacttabbedmode

<user_interface>
  <mode>tabbed</mode>
</user_interface>

이 축약된 XML은 설정 예시일 뿐 전체 구성 섹션을 대체하는 것은 아닙니다. 변경 사항은 배포의 일반적인 구성 및 서비스 재시작 프로세스를 통해 적용한 다음 문서를 다시 여십시오. 컨테이너 배포의 경우 --o:user_interface.mode=tabbed기존 CODE 시작 재정의 값을 전달할 수도 있습니다. 임베딩 애플리케이션은 WOPI ui_defaults값을 통해 시작 모드에 영향을 줄 수도 있습니다. 서버에서 를 사용하는 경우 호스트의 기본 설정이 중요할 수 있으므로 default서버 편집이 통합 관련 설정을 재정의한다고 가정하지 마십시오.

소스 코드를 수정하지 않고 툴바 전체를 숨길 수 있나요?

읽는 동안 더 넓은 공간을 확보하려면 현재 선택된 탭을 클릭하여 노트북바를 접을 수 있습니다. 다시 클릭하면 노트북바가 펼쳐집니다. Collabora는 공식 노트북바 소개 에서 이 동작을 설명합니다 . PostMessage API 문서에는 Collapse_Notebookbar노트북바 버튼이나 간편 버튼 스트립을 숨기는 기능도 설명되어 있습니다. 이는 영구적인 관리자 정책이 아니라, 언제든지 되돌릴 수 있는 표시 상태입니다.

보다 세밀한 제어를 위해서는 요소에 맞는 PostMessage 액션을 선택하세요. Collabora Online SDK 설명서 에는 다음과 같은 매핑이 나와 있습니다 .

숨길 내용PostMessage 액션ID 형식
툴바 버튼 하나Hide_Button버튼 ID
메뉴와 툴바를 넘나드는 명령Hide_CommandUNO 명령어(예: ...).uno:ThemeDialog
탭 레이아웃의 탭 하나Hide_NotebookTab탭 ID(예: ...)Help
간편 메뉴 항목Hide_Menu_Item메뉴 항목 ID

탭별 동작은 24.04.11.1 버전부터 문서화되어 있습니다. SDK는 또한 24.04.11.2Hide_Command 버전에서 컨텍스트 메뉴 지원 범위가 확장되었다고 명시하고 있습니다 . 이러한 동작을 사용하기 전에 배포된 CODE 빌드를 확인하십시오.

WOPI 호스트에서 숨기기 명령을 어떻게 보내나요?

이러한 작업은 CODE 설정 대화 상자에 직접 입력하는 것이 아니라 iframe에 CODE를 삽입한 애플리케이션에서 전송됩니다. 호스트 통합에 대한 제어 권한, 제대로 작동하는 WOPI CheckFileInfo응답, 그리고 PostMessageOrigin호스트 웹 애플리케이션의 출처와 일치하는 값이 필요합니다. Nextcloud 또는 ownCloud 통합 패키지를 사용하는 경우, 임의의 사용자 지정 PostMessage 후크가 제공되지 않을 수 있습니다. 이 경우 통합 자체에서 변경하거나 지원되는 설정을 사용하십시오.

1. 코드가 완전히 로드될 때까지 기다리세요.

호스트 페이지에 메시지 리스너를 등록하세요. 발신 창과 출처를 모두 확인하세요. CODE App_LoadingStatus에서 오류가 발생하면 사용자 지정 메시지보다 먼저 메시지를 Status: Document_Loaded전송하세요 . 이러한 핸드셰이크가 없으면 CODE가 호스트 명령을 무시할 수 있습니다. 이는 Collabora 이슈 #13224Host_PostmessageReady 에서 설명된 오류입니다 .

2. 탭과 서식 명령 숨기기

다음 호스트 측 JavaScript는 페이지에 이미 ID가 인 iframe이 있다고 가정합니다 collabora-frame. ID editorOrigin는 WOPI 스토리지 서버가 아닌 CODE 편집기를 제공하는 정확한 HTTPS 출처로 설정해야 합니다. 실제 애플리케이션에서는 문서 초기화 전에 리스너를 등록하세요.

const frame = document.getElementById('collabora-frame');
const editorOrigin = 'https://office.example.com';

function sendToCode(MessageId, Values = {}) {
  frame.contentWindow.postMessage(JSON.stringify({
    MessageId, SendTime: Date.now(), Values
  }), editorOrigin);
}

window.addEventListener('message', (event) => {
  if (event.source !== frame.contentWindow ||
      event.origin !== editorOrigin) return;
  let message;
  try {
    message = typeof event.data === 'string'
      ? JSON.parse(event.data) : event.data;
  } catch { return; }
  if (message?.MessageId !== 'App_LoadingStatus' ||
      message?.Values?.Status !== 'Document_Loaded') return;

  sendToCode('Host_PostmessageReady');
  sendToCode('Hide_NotebookTab', { id: 'Help' });
  sendToCode('Hide_Command', { id: '.uno:ThemeDialog' });
});
브라우저 개발자 도구의 소스 패널에 호스트 측 메시지 리스너와 Help를 대상으로 하는 Hide_NotebookTab 호출이 표시됩니다.
호스트 애플리케이션의 소스 코드 패널에서 postMessage 연결 코드를 확인할 수 있습니다. 이 패널에 표시된 축약된 텍스트가 아닌, 문서에 있는 전체 코드 예제를 사용하십시오.

다음 Help은 Notebookbar 탭의 대상이며, .uno:ThemeDialogLibreOffice UNO 명령을 식별합니다. Collabora 개발자는 UNO 요소 숨기기에 대한 지침 에서 이 ID를 구체적으로 설명합니다 . 특정 Compact 툴바 버튼을 숨기려면 해당 작업을 로 바꾸고 Hide_Button확인된 버튼 ID를 제공하십시오. 표시되는 캡션에서 ID를 추측하지 마십시오. 설치된 CODE 소스 또는 SDK의 툴바 ID 지침을 확인하십시오.

탭이나 툴바가 사라지지 않으면 어떻게 해야 할까요?

CODE 파일을 변경하기 전에 브라우저 콘솔과 네트워크 활동을 확인하십시오. 가장 일반적인 원인은 Host_PostmessageReady핸드셰이크 실패, 불일치 PostMessageOrigin, 메시지 전송 전 오류 Document_Loaded, 또는 편집기가 탭 모드일 때 간편 메뉴 항목을 선택하는 경우입니다. 파일을 다시 열면 새 세션이 시작되므로 매번 메시지 숨기기 설정을 적용해야 합니다.

버전별 결함도 존재합니다. 예를 들어, Collabora 이슈 #15910은 2026년 6월에 보고된 CODE 25.04.9.4 버전의 JavaScript 오류를 설명합니다 Hide_NotebookTab. 해당 이슈는 해결된 것으로 표시되었지만, 그것만으로는 어떤 배포된 빌드에 수정 사항이 포함되어 있는지 알 수 없습니다. 보고된 오류가 발생하는 경우 정확한 버전과 릴리스 노트를 확인하십시오.

마지막으로, 숨기기는 접근 제어가 아닙니다. 인쇄 또는 다운로드 버튼을 숨기더라도 해당 API 또는 다른 경로는 여전히 사용 가능할 수 있습니다. 이러한 작업을 금지하려면 문서화된 WOPI DisablePrint또는 DisableExport플래그를 사용하고 필요에 따라 저장소 권한을 적용해야 하며, Hide_Button또는 에 의존해서는 안 됩니다 Hide_Command.

사용자 지정이 제대로 적용되었는지 어떻게 확인할 수 있나요?

원하는 레이아웃으로 새 문서를 엽니다. Help탭 모드에서 탭이 사라지고 이전에 테마 명령이 표시되던 위치에서 더 이상 테마 명령이 나타나지 않는지 확인합니다. 그런 다음 테스트 문서를 편집하고 저장하여 일반적인 문서 작성 기능이 정상적으로 작동하는지 확인합니다. 다른 문서 유형으로 동일한 작업을 반복하고 페이지를 새로 고침합니다. 호스트에서 세션별 숨기기 명령을 다시 적용해야 하기 때문입니다.

Collabora CODE는 파일, 홈, 삽입, 레이아웃 및 보기 탭으로 구성된 탭형 인터페이스를 제공하며, 도움말은 제거되고 Writer 문서는 편집 가능한 상태로 유지됩니다.
도움말 탭이 숨겨진 후에도 다른 편집 탭과 문서 캔버스는 기능 확인을 위해 계속 사용할 수 있습니다.

댓글 남기기

추측 없이 CODE 컨테이너의 메모리 제한을 높이는 방법

추측 없이 CODE 컨테이너의 메모리 제한을 높이는 방법

Docker가 Collabora CODE에 메모리 제한을 걸고 있는지 확인하고, Compose 메모리 제한을 안전하게 높인 다음, 실행 중인 컨테이너가 새로운 제한을 적용받았는지 확인합니다.

소스 코드를 수정하지 않고 Collabora CODE 툴바를 사용자 지정하는 방법

소스 코드를 수정하지 않고 Collabora CODE 툴바를 사용자 지정하는 방법

Collabora CODE를 간소화하려면 컴팩트 모드 또는 탭 모드와 WOPI PostMessage 컨트롤을 사용하여 선택한 버튼, 명령 및 탭을 안전하게 숨길 수 있습니다.

Collabora 코드를 TLS 종료를 사용하여 Nginx 뒤에서 실행

Collabora 코드를 TLS 종료를 사용하여 Nginx 뒤에서 실행

Collabora CODE 컨테이너의 HTTPS 처리를 Nginx에 맡기고, 웹소켓을 통해 편집 내용을 올바르게 전달하며, 9980번 포트를 노출하지 않고 공개 엔드포인트를 검증합니다.

Collabora 모바일 키보드가 열릴 때 텍스트가 계속 표시되도록 설정

Collabora 모바일 키보드가 열릴 때 텍스트가 계속 표시되도록 설정

Collabora Online에서 모바일 브라우저 키보드가 텍스트를 가리는 문제를 해결하는 방법을 안내합니다. 브라우저, 내장 WebView, 호스트 페이지에 대한 개별 점검을 포함하여 빠른 해결 방법을 제공합니다.

ONLYOFFICE에서 원치 않는 인쇄 및 다운로드를 중지하세요

ONLYOFFICE에서 원치 않는 인쇄 및 다운로드를 중지하세요

ONLYOFFICE 링크, 회의실 구성원 또는 Docs API 세션에 대한 인쇄 및 다운로드 제한을 설정한 다음 수신자 계정에서 제한 사항을 확인하십시오.

ONLYOFFICE Workspace에 대한 안정적인 백업 일정을 예약하세요

ONLYOFFICE Workspace에 대한 안정적인 백업 일정을 예약하세요

ONLYOFFICE Workspace에서 백업 대상, 일정, 메일 범위 및 보존 기간을 설정한 다음 아카이브를 복원할 준비가 되었는지 확인합니다.

ONLYOFFICE Docs Enterprise를 공식 작성 파일을 사용하여 배포하세요.

ONLYOFFICE Docs Enterprise를 공식 작성 파일을 사용하여 배포하세요.

엔터프라이즈 Docker Compose 스택을 시작하고, 라이선스와 데이터를 저장하고, JWT를 안전하게 구성하고, 편집기가 통합될 준비가 되었는지 확인합니다.

재사용 가능한 ONLYOFFICE 매크로로 스프레드시트 텍스트를 정리하세요

재사용 가능한 ONLYOFFICE 매크로로 스프레드시트 텍스트를 정리하세요

ONLYOFFICE JavaScript 매크로를 사용하여 정의된 스프레드시트 범위에서 인쇄되지 않는 문자를 제거하고 불필요한 공백을 없애고, 안전한 검토 워크플로를 적용할 수 있습니다.

ONLYOFFICE Workspace의 기본 저장 위치 변경

ONLYOFFICE Workspace의 기본 저장 위치 변경

포털 데이터를 기본 디스크에서 지원되는 클라우드 스토리지 공급자로 이동하거나, Docker 데이터의 호스트 볼륨 매핑을 변경하여 안전하게 재배치할 수 있습니다.

Linux에서 ONLYOFFICE Document Server를 완전히 제거하십시오.

Linux에서 ONLYOFFICE Document Server를 완전히 제거하십시오.

문서 서버가 Linux 패키지를 사용하는지 Docker를 사용하는지 확인하고, 해당 구성 요소만 제거한 다음, 공유 서비스를 실수로 삭제하지 않고 나머지 데이터를 확인합니다.