PDF ドキュメントを作成または編集するときに、デフォルトのフォントの代わりに、カスタムのフォントを使用する場合があります。PDFビューワでは、editorDefaults.fontNames オプションを使用して新しいフォントまたはカスタム フォントのリストからフォントを追加して使用できます。
editorDefaults.fontNames オプションを使用するには、次の前提条件を満たす必要があります。
次のサンプルコードは、CSS から 2 つのフォントを登録する方法を示しています。
コードのコピー
|
|
---|---|
// カスタムフォントを定義します。 <link rel="preload" href="budmo_jiggler.ttf" as="font" type="truetype" crossorigin> <link rel="preload" href="FantaisieArtistique.ttf" as="font" type="truetype" crossorigin> <style> @font-face { font-family: BudmoJiggler-Regular; src: url(/documents-api-pdfviewer/demos/product-bundles/assets/fonts/budmo_jiggler.ttf) format('truetype'); } @font-face { font-family: FantaisieArtistique; src: url(/documents-api-pdfviewer/demos/product-bundles/assets/fonts/FantaisieArtistique.ttf) format('truetype'); } </style> |
DsPdfViewer には、クライアント側のフォント名をサーバー側のフォントに関連付ける 3 つの異なる方法が用意されています。
コードのコピー
|
|
---|---|
public void Configuration(IAppBuilder app) { app.UseCors(CorsOptions.AllowAll); GcPdfViewerHub.Configure(app); GcPdfViewerController.Settings.VerifyToken += VerifyAuthToken; GcPdfViewerController.Settings.Sign += OnSign; // ClientFonts プロパティは、クライアント側の各フォント名に関連付けられたフォントマッピングを保持します。 GcPdfViewerController.Settings.ClientFonts.Add("BudmoJiggler-Regular", Font.FromFile("budmo_jiggler.ttf")); GcPdfViewerController.Settings.ClientFonts.Add("FantaisieArtistique", Font.FromFile("FantaisieArtistique.ttf")); GcPdfViewerController.Settings.ClientFonts.Add("Yu Gothic UI", Font.FromFile("yu_gothic_ui.ttf")); } |
コードのコピー
|
|
---|---|
public void Configuration(IAppBuilder app) { app.UseCors(CorsOptions.AllowAll); GcPdfViewerHub.Configure(app); GcPdfViewerController.Settings.VerifyToken += VerifyAuthToken; GcPdfViewerController.Settings.Sign += OnSign; GcPdfViewerController.Settings.DocumentInitialized += OnDocumentInitialized; } private void OnDocumentInitialized(object sender, DocumentInitializedEventArgs e) { // GcPdfDocument の FontCollection プロパティを使用して、 「FantaisieArtistique」 フォントを解決します。 var doc = e.Document; // FontCollection インスタンスを作成します。 FontCollection fc = new FontCollection(); // RegisterFontメソッドを使用して、フォントファイルを取得します。 string projectRootPath = HttpContext.Current.Server.MapPath("~"); string fontPath = Path.Combine(projectRootPath, "assets/FantaisieArtistique.ttf"); fc.RegisterFont(fontPath); // SupportApi を使用して、フォントコレクションに指定されたフォントを検索できるようにします。 doc.FontCollection = fc; } |
コードのコピー
|
|
---|---|
public void Configuration(IAppBuilder app) { app.UseCors(CorsOptions.AllowAll); GcPdfViewerHub.Configure(app); GcPdfViewerController.Settings.VerifyToken += VerifyAuthToken; GcPdfViewerController.Settings.Sign += OnSign; GcPdfViewerController.Settings.ResolveFont += OnResolveFont; } private void OnResolveFont(object sender, ResolveFontEventArgs e) { // ResolvedFont イベントの Argument プロパティを使用して、「BudmoJiggler- Regular」 フォントを解決します。 string projectRootPath = HttpContext.Current.Server.MapPath("~"); if (e.FontName == "BudmoJiggler-Regular") { string fontPath = Path.Combine(projectRootPath, "assets/budmo_jiggler.ttf"); e.ResolvedFont = Font.FromFile(fontPath); } } |
上記の前提条件を設定したら、次のように editorDefaults.fontNames オプションを使用してカスタムフォントを設定して PDF に適用します。
コードのコピー
|
|
---|---|
// フリーテキスト注釈のエディタのデフォルトを設定します。 viewer.options.editorDefaults.freeTextAnnotation = { fontName: 'FantaisieArtistique', borderStyle: { width: 0 } }; // フォント名を追加します。 viewer.options.editorDefaults.fontNames = [ { name: 'Disco font', value: 'BudmoJiggler-Regular' }, { name: 'Fantaisie font', value: 'FantaisieArtistique' } ]; |