AWS Lambdaでのフォント表示不具合

This article was translated from English: Does it need improvement?
Translated
View the article in English

LinuxでPDF文書を表示すると、下の画像のように文字化けが発生する可能性があります。 Windows環境では文字が正しく表示されるように見えても、Linux環境では正しく表示されない場合があります。

文字化け

理由

その理由は、オペレーティングシステムにそのフォントが含まれていないためです。

解決策

フォント名がすでにわかっている場合は、ステップ1をスキップして構いません。

  1. フォント名を確認するには、Windows上でHTMLを表示し、Adobeを使用して文字を検査してみてください。
  2. フォント名が特定できたら、Google Fontsなどからオンラインでフォントファイルをダウンロードできます。
  3. Dockerfile 経由でフォントを追加・インストールするには、プロジェクト内にフォントを配置し、"出力ディレクトリにコピー""常にコピー"に設定します次に、以下のコードを使用して Dockerfile 内でフォントを追加・インストールします:
# Copy the Cambria Math font into the container
# Ensure the font file (cambria.ttc) exists in your project directory
COPY cambria.ttc /usr/share/fonts/

# Install fontconfig to update the font cache
# This will install fontconfig and refresh the font cache to recognize the newly added fonts
RUN dnf install -y fontconfig && \
    fc-cache -fv

説明

  • COPY cambria.ttc /usr/share/fonts/: この行は、プロジェクトディレクトリからコンテナのフォントディレクトリへ、Cambria Mathフォントをコピーします。 プロジェクトディレクトリにフォントファイル (cambria.ttc) が存在することを確認してください。

  • RUN dnf install -y fontconfig && \: このコマンドは、Linux でのフォントアクセスの管理および設定に必要な fontconfig パッケージをインストールします。 -y フラグは、パッケージのインストールを自動的に確認します。

  • fc-cache -fv: このコマンドはフォントキャッシュを更新し、コンテナ内のアプリケーションが新しくコピーされたフォントを利用できるようにします。 フラグ -f (force) および -v (verbose) は、それぞれキャッシュの再生成を強制したり、詳細な出力を提供したりするために使用されます。
カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 19,014,616 | バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。