NextcloudのオフィスアプリにCollabora Officeというものがあったので、仮想環境に入れて試してみたメモ書き。
インストール
Nextcloudのアプリインストール画面から「Nextcloud Office」と「Collabora Online – Built-in CODE Server」をインストール。
ちなみにnextcloudはpodmanでコンテナを動かして、nginxでリバースプロクシしてる。
試しに表示
インストールが終わったら設定で「ビルトインCODEを使う」に設定して、ファイルから適当なofficeファイルにアクセス。

デフォルトでは日本語フォントがないらしく、日本語がほぼ表示できない。
流石にこれでは困るので調査。ざっくりググってみたところ、「設定ファイルをかけばいい」「ただし、ビルトインサーバーだとちょっと面倒」とのことだったけど、custom_apps/richdocumentscode/proxy.php
を眺めてたところ
// Remote font config URL (HTTPS only)
$remoteFontConfig = "";
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
{
$remoteFontConfigUrl = escapeshellarg("https://" . $_SERVER['HTTP_HOST'] . preg_replace("/richdocumentscode.*$/", "richdocuments/settings/fonts.json", $_SERVER['REQUEST_URI']));
$remoteFontConfig = "--o:remote_font_config.url=" . $remoteFontConfigUrl;
}
こんな感じのコードがあり、設定ファイルとフォントさえ準備すればできそうな雰囲気。
見た感じ、/cutom_apps/richdocuments/settings/fonts.json
を読みに行くようなので、richdocuments
ディレクトリ以下にsettingsディレクトリを作って、以下の設定ファイルを保存
{
"kind": "fontconfiguration",
"server": "192.168.122.17",
"fonts": [
{
"uri": "https://192.168.122.17/custom_apps/richdocuments/fonts/TakaoGothic.ttf"
}
]
}
次にcustom_apps/richdocuments/fonts/TakaoGothic.ttf
を読むように指定してるので、そこにフォントファイルを配置。フォントは何かとよく使ってるTakaoフォントを使用。
ちょっと困った
一応これだけで日本語が表示できるかと思ったけど、困ったことに表示できない。
あれこれ調べた感じ、nginxまではhttpsなんだけどnginxからphpまでがhttp通信なので$_SERVER['HTTPS']
がonにならず、フォント設定を見に行かないらしい。

ちょっと眠い目擦って調べたけどどうにもうまくいかなかったので
*** proxy.php
--- custom_apps/richdocumentscode/proxy.php
***************
*** 80,85 ****
--- 80,86 ----
// Remote font config URL (HTTPS only)
$remoteFontConfig = "";
+ $_SERVER['HTTPS'] = 'on';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
{
$remoteFontConfigUrl = escapeshellarg("https://" . $_SERVER['HTTP_HOST'] . preg_replace("/richdocumentscode.*$/", "richdocuments/settings/fonts.json", $_SERVER['REQUEST_URI']));
直前で無理やりonにしてnextcloudを再起動してテスト。

なんとかTakaoフォントが読み込まれて、日本語が表示可能になった。
あとはこれをメインのサーバーに入れてテストだ。