AWSラムダ上のブロークンフォント
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(強制)と-v(詳細)は、キャッシュの再生成を強制し、詳細な出力を提供するために使用されます。






