gpt4 book ai didi

Javafx 如何在 webview 中显示自定义字体?

转载 作者:行者123 更新时间:2023-12-02 07:06:24 31 4
gpt4 key购买 nike

该网页使用了我的 PC 上未安装的自定义字体。在这种情况下,WebView 似乎使用操作系统的默认字体。

但是我有字体文件“xx.ttf”。如何将字体嵌入我的应用程序并告诉 WebView 使用它来识别页面上的字体?

最佳答案

加载字体:

Font.loadFont(
CustomFontWebView.class.getResource("TRON.TTF").toExternalForm(),
10
);

在 WebView 中使用它之前:

style='font-family:"TRON"';

这是一个完整的例子。该示例依赖于 TRON.TTF 字体,您可以从 dafont 下载该字体.下载 TRON.TTF 字体后,将其放在与 CustomFontWebView.java 相同的目录中,并确保您的构建系统将 TRON.TTF 文件复制到类输出目录。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

// demonstrates the use of a custom font in a WebView.
public class CustomFontWebView extends Application {
public static void main(String[] args) { launch(args); }
@Override public void start(Stage stage) {
stage.setTitle("TRON Synopsis");

// load the tron font.
Font.loadFont(
CustomFontWebView.class.getResource("TRON.TTF").toExternalForm(),
10
);

// use the tron font in a WebView.
WebView webView = new WebView();
webView.getEngine().loadContent(
"<body bgcolor='silver'>" +
"<div align='center'>" +
"<p style='font-family:'TRON'; font-size:20;'>" + "TRON" +
"</p>" +
"<img src='http://ia.media-imdb.com/images/M/MV5BMTY5NjM2MjAwOV5BMl5BanBnXkFtZTYwMTgyMzA5.V1.SY317.jpg' width='259' height='457'/>" +
"<p style='font-family:'TRON'; font-size:10;'>" +
"A sci-fi flick set in an alternate reality." +
"</p>" +
"</div>" +
"</body>"
);

// layout the scene.
final Scene scene = new Scene(webView, 400, 575);
stage.setScene(scene);
stage.show();
}
}

tron

关于微软雅黑字体的具体使用

Microsoft YaHei 适合我 (Windows 7)。我的 Win7 安装附带字体(并且无法删除),因此不需要显式加载 - 只需从您的 html 中引用正确的字体系列,它就适用于此类 Win7 安装。我有标准的美版Win7 Pro,不是中文版。我确实将 msyh.ttf 文件从我的 windows/fonts 目录复制到我的项目中,并通过 JavaFX 加载它,只是为了确保通过 JavaFX 的加载工作正常并且工作正常。我用来设置 html 样式 css 字体系列说明符的字体系列是“Microsoft YaHei”(而不是上面答案示例中使用的 TRON)。我为测试它而显示的文本是微软件雅黑,我将 JavaFX 应用程序呈现的文本与选择了 Microsoft YaHei 的写字板中呈现的相同文本进行了比较,字形完全相同。


请注意,JavaFX 3.0 似乎可以使用 css @font-face机制,这意味着您可以在网页的 css 中声明字体引用,而不是像我在上面的示例中那样在 Java 代码中声明。这是 relevant jira issue 的链接跟踪此功能的实现进度。

关于Javafx 如何在 webview 中显示自定义字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325979/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com