Nextcloud のプレビューに関する Tips

なんか Nextcloud のプレビューに関して、結構な工数が必要になってきたので簡単にまとめておいて、次回の作業時に楽をしよう!と言う目論見の備忘録
ですので、他のサイトでお役に立てるかは判りません ^^;

.txt,.png,.jpg などのプレビューはデフォルトでも表示しれくれますが、
Preview Generator というアプリを追加すればプレビュー画像を用意してくれるようです

1. No Tofu

日本語テキストのプレビューがで豆腐が表示されるのを防ぐ方法

Nextcloud はプレビュー作成用のフォントを自前で確保しています
ですが、このフォントが CJK に対応していないようですので CJK 対応にしてしまえばキチンと表示します
 
https://nofu.jp/wiki/blog/2019/2019-12-16
コッチらのサイトさんを参考にしました
 
対策は簡単で、NotoSansCJKjp-Regular.ttf を NotoSans-Regular.ttf にリネームして、管理用のログインアカウントのホームディレクトリに格納しておき、Nextcloud が更新される度に上書きすれば大丈夫です
/var/www/nextcloud/core/fonts に有りますので、オリジナルをリネームして確保して、同じディレクトリに格納すれば豆腐が表示されなくなります
No Tofu フォントの本来の使い方に戻ると思います
 
ただ、CJK 以外の対応がダメになると思います
Google 先生のところに行くと新しい NotoFont があるので適宜拾ってくれば良いと思いますが、余り困らないので古くても僕は大丈夫..
 
これは Preview Generator 無しでもプレビュー表示します
 

2. PDF

PDF のプレビューが作成されないのは ImageMagick のポリシーの設定をさぼっているからです
 
PDF のプレビュー画像は ImageMagick が作成するようです
/etc/ImageMagick-6/policy.xml に変換する対象の扱いが指定されています
<!– disable ghostscript format types –> と言うコメントが一番下の方にあります
コメントの通り、PDF に対応しない設定になっています
そのコメントの次行から始まる設定で PS,PS2,PS3,EPS,PDF,XPS の rights が none になっていますので read を指定すればプレビュー画像を作成してくれるようです
 
<!-- disable ghostscript format types -->
< policy domain="coder" rights="read" pattern="PS" />
< policy domain="coder" rights="read" pattern="PS2" />
< policy domain="coder" rights="read" pattern="PS3" />
< policy domain="coder" rights="read" pattern="EPS" />
< policy domain="coder" rights="read" pattern="PDF" />
< policy domain="coder" rights="read" pattern="XPS" />

rights は read|write と普通は指定するようですのでその方が良いかもしれません
 
これは、OC\\Preview\\Postscript で変換されるようです
 

3. MS Office

LibreOffice をインストールしたのにプレビューが表示されないのは、設定が不足しているからです
 
Preview Generator では 2003 と 2007 で設定がありますので、両方とも有効化しかねればいけません
2003 は古い形式の .xls とか .ppt のフォーマットで、2007 は新しめの .xlst とか .pptx とかのフォーマットのようですね…
 
これは簡単で、LibreOffice をシステムに追加して、パスとフォーマットの指定を config.php へ追記します
下の config.php を見て下さい
 
ただ、プレビュー画像を作成するだけの為に、巨大な LibreOffice をインストールするのも、どうかと思いますが…
ちなみに Nextcloud に、表計算などを作成するプラグインがありますが、これは LibreOffice を使わない様子..
コスパ悪い気がする…
 
これは、
OC\\Preview\\MSOffice2003
OC\\Preview\\MSOffice2007
OC\\Preview\\MSOfficeDoc
で変換される様です
 

4. cron

Preview Genrator の説明には */10 で10分おきに pre-generate を起動するように書いてあります
 

MAILTO=xxxxxxxx@xxxxxxxx.co.jp
 
*/5 * * * * php -f /var/www/nextcloud/cron.php
*/10 * * * * php -f /var/www/nextcloud/occ preview:pre-generate

こんな感じでしょうか…
 
これは、別記事の */30 で fulltextsearch:index を実行する環境ではないので、cron には指定は有りません
 

5. その他

ログの警告:
Host 192.168.XXX.XXX was not connected to because it violates local access rules
ログを確認して、こんな感じの警告が表示されている場合は、プレビューを作成しに行ってコネクションが確立されていないので警告されているらしいです
管理者ではプレビューが表示するが、利用者のプレビューが表示されない場合は config.php に ‘allow_local_remote_servers’ => true, を追加すれば良いようです
[no app in context] 警告: Host 192.168.XXX.XXX was not connected to because it violates local access rules
 
GET /nextcloud/index.php/core/preview?fileId=1856&c=0675d77f6720fd72233469ceXXXXXXXX&x=XXX&y=XXX&forceIcon=0&a=1
from 192.168.XXX.XXX by admin at 2022-06-01T00:36:31+00:00

整形済みのログにこんな感じで preview が接続できないと言っていますね!
 
ImageMagick:
// SVG, Office and Bitmap require imagick
PreviewManager.php にこんな記述がありました
なので、 Office 文章などが変換されない場合は Bitmap の設定と ImageMagick の設定を確認してみてください
 
 

6. こんな感じ

'default_phone_region' => 'JP',
 
'memcache.local' => '\\OC\\Memcache\\APCu',
 
'allow_local_remote_servers' => true,
 
'preview_libreoffice_path' => '/usr/bin/libreoffice',
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\TXT',
1 => 'OC\\Preview\\MarkDown',
2 => 'OC\\Preview\\OpenDocument',
3 => 'OC\\Preview\\PDF',
4 => 'OC\\Preview\\MSOffice2003',
5 => 'OC\\Preview\\MSOfficeDoc',
6 => 'OC\\Preview\\Image',
7 => 'OC\\Preview\\Photoshop',
8 => 'OC\\Preview\\TIFF',
9 => 'OC\\Preview\\SVG',
10 => 'OC\\Preview\\Font',
11 => 'OC\\Preview\\MP3',
12 => 'OC\\Preview\\Movie',
13 => 'OC\\Preview\\MKV',
14 => 'OC\\Preview\\MP4',
15 => 'OC\\Preview\\AVI',
16 => 'OC\\Preview\\MSOffice2007',
17 => 'OC\\Preview\\WebP',
18 => 'OC\\Preview\\GIF',
19 => 'OC\\Preview\\PNG',
20 => 'OC\\Preview\\Postscript',
),
 
'logtimezone' => 'Asia/Tokyo',

 

 
 
 
今の所、こんな感じです
修正事項などが有ったら、いつの間にか修正されていると思います
 
全般的に、プレビューはコスパが悪い気がします
でも、今回は広く使ってもらおうと思っての設定になっています
あと、cron の実行時間が重ならないように注意した方が良いと思います
.
 
 
 
2022-06
以上

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.