AWSラムダ上のブロークンフォント

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

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

準備はできましたか?
Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース
Still Scrolling Icon

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

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