在 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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 HTML 渲染图像,使用 Flutter 创建 iOS-App 的 CSS?