Nextcloudでurl共有したpdfをwebに埋め込みたい その2

ドキュメント共有サイトの無料枠を使うのが辛くなったのでNextcloudのURL共有でどうにかならないかなと思っています.
まずはpdfファイルをobjectタグで埋め込む方法を試しました.

この方法のデメリットはcgiを用意しないといけない,pdfを読む気がなくてもページを読み込むとpdfファイルがダウンロードされてしまいページ容量が大きくなってしまう.そしてNextcloudに「<pdfファイル名> が公開リンクからダウンロードされました」という通知がたくさん届いてしまいちょっとうるさいといった感じです.

途中のcgiでキャッシュしてプレビュー用の画像を用意してwebにはそのプレビュー画像を表示しておけばいいのではとcgiを書き換えていました.headで引っ張ってもダウンロードされた扱いになるしdbから実ファイルの場所を探してそこからダウンロードするように,サムネイルもdbから引っ張ってこれるかな?とかやってましたがふとそれだと標準の機能で出来るのではと気づいたので試してみました.

pdf共有URLの末尾に /preview を付けるとプレビュー画像が表示されます.(標準では50MB以下のファイルの場合)

これを利用してこんな感じに書くと,

AsciiDocでの例
[quote,'link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ]']
link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[image:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ/preview[width=100%]]
htmlへ変換した例
<div class="quoteblock">
<blockquote>
<a href="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ"><span class="image"><img src="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4
nZ/preview" alt="preview" width="100%"></span></a>
<div class="attribution">
&#8212; <a href="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ">https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ</a>
</div>
</blockquote>
</div>

こういうふうになりました.クリックするとNextcloudのpdfファイルプレビュー画面が開かれ,最近のモダンウェブブラウザではそのまま閲覧できます.

SpeakerDeckなんかでは埋め込んだページでそのまま読むことも出来ますがとりあえずこれならcgiも必要なくNextcloudの標準機能だけ(恐らくNC13以降で可能)でいけるのでそこそこいい感じではないかなと思います.

環境
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

One thought to “Nextcloudでurl共有したpdfをwebに埋め込みたい その2”

コメントを残す

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

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)