スポンサーリンク

Blazor Server で画像を作成しダウンロードする(on Linux)

.NET CoreBlazor Server 5.0C#CentOSLinuxコマンドVisual Studio 2019画像変換

Blazor Server でWeb画面やドキュメントを画像データに変換し、ダウンロードする機能を実装する場合、HTMLのテンプレートファイルを用意し、wkhtmltoimage で画像データに変換してからダウンロードするのがベターです。
ソースコードはGitHubで公開しています。

wkhtmltoimage について

wkhtmltoimage については Blazor Server で画像を作成しダウンロードする(on Windows) で説明済み。ここでは、Linuxで wkhtmltoimage を使う場合の手順を記載する。

1.インストール

2.バージョン確認

3.動作確認

フォントについて

wkhtmltoimage が画像データを生成する際のフォントは、OSのフォントを使うので、画像変換するHTMLファイルに日本語が含まれている場合、Linuxに日本語フォントをインストールする必要がある。

IPAが公開している日本語フォントを使う場合

Windows の日本語フォントを使う場合

Windows 10 で標準となっている Segoeフォント を Linuxでも使いたい場合、Windows OS のフォントファイルを C:\Windows\Fonts フォルダからコピーし、Linux の /usr/local/share/fonts/ 配下に配置することで、Linuxでも Segoeフォント を使えるようになります。
参考=>LinuxでもMSフォントを使いWindowsでのスタイル崩れを予防

ソースコード構成

Blazor Server で画像を作成しダウンロードする(on Windows) をベースに、Linux側の画像データ生成処理を追加しています。
本番環境がLinuxでも、Windowsで開発する場合は Blazor Server で画像を作成しダウンロードする(on Windows) でデバッグすることになります。

ソースコード変更内容を解説

Util/WkHtmlToImage.cs

・Linux上で wkhtmltoimage コマンドを実行する為の共通部品。

Pages/Counter.razor

・WindowsとLinuxで、画像変換処理が切り替わるように分岐を追加。

_Imports.razor

・参照を追加。

コメント

タイトルとURLをコピーしました