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

理由
その理由は、オペレーティングシステムにそのフォントが含まれていないためです。
解決策
フォント名がすでにわかっている場合は、ステップ1をスキップして構いません。
- フォント名を確認するには、Windows上でHTMLを表示し、Adobeを使用して文字を検査してみてください。
- フォント名が特定できたら、Google Fontsなどからオンラインでフォントファイルをダウンロードできます。
- 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) は、それぞれキャッシュの再生成を強制したり、詳細な出力を提供したりするために使用されます。

