在 Java 中使用 CSS 渲染 HTML

Posted

技术标签:

【中文标题】在 Java 中使用 CSS 渲染 HTML【英文标题】:Render HTML with CSS in Java 【发布时间】:2011-04-25 11:27:07 【问题描述】:

我正在尝试在我的 html 中包含链接样式表的 Java 应用程序中显示 HTML。

我正在使用来自 Java 的 XSLT 将我的 XML 转换为 HTML。我想包含一个样式表,以便我可以轻松地设置 html 输出的样式。但是样式表被忽略,html正常输出。

为此,我使用了 JEditorPane 和 HTMLEditorKit。我在Dev Daily 上找到了一些示例代码来执行此操作。

我的样式表位于本地硬盘上,我想知道是否有人知道我可以如何使用它?

我有以下代码:

JEditorPane jEditorPane = new JEditorPane();
jEditorPane.setEditable( false );

HTMLEditorKit kit = new HTMLEditorKit();
jEditorPane.setEditorKit(kit);

try     
    kit.getStyleSheet().importStyleSheet( new URL( "file://D:\\mycssfile.css" ) );
 catch( MalformedURLException ex ) 


Document doc = kit.createDefaultDocument();
jEditorPane.setDocument(doc);
jEditorPane.setText(html);

在我的 xsl html 输出中,css 使用以下内容链接 - 我得到相同的结果,包括或排除它:

<link rel="stylesheet" type="text/css" href="mycss.css" />

有什么想法吗?

干杯,

安德斯

【问题讨论】:

我认为 HTMLEditorKit 对 CSS 的支持相当差,这可能是问题 【参考方案1】:

您的网址无效,因此找不到您的 CSS 文件。将其更改为:

kit.getStyleSheet().importStyleSheet(new URL("file:///D:/mycssfile.css"));

或者更好的是,不要使用 URL,而是将 css 文件添加到类路径中,然后将其作为资源加载,如下所示:

kit.getStyleSheet().importStyleSheet(MyClassName.class.getResource("mycssfile.css"));

【讨论】:

我选择了 kit.getStyleSheet().importStyleSheet(new URL("file:///D:/mycssfile.css"));选项。我们的配置相对存储在 java 应用程序路径下,所以只需要弄清楚那部分。

以上是关于在 Java 中使用 CSS 渲染 HTML的主要内容,如果未能解决你的问题,请参考以下文章

Java HTML 渲染引擎

如何使用 HTML 渲染图像,使用 Flutter 创建 iOS-App 的 CSS?

使用 html-pdf-node 渲染的 pdf 中未显示 CSS 和图像

11HTML CSS

java中的渲染是啥意思?

Js动态添加的html内容怎样用css渲染