Broken Font on 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(強制)と-v(詳細)は、キャッシュの再生成を強制し、詳細な出力を提供するために使用されます。
Curtis Chau
テクニカルライター

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

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

準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました