如何将带有CSS的HTML转换为XSL-FO?

4
我想将带有CSS的HTML转换为XSL-FO。 请问有什么建议可以用来进行转换。
我有两个文件,一个HTML文件和一个CSS文件。 我想使用这两个文件生成XSL-FO文件,以便可以轻松地生成PDF,RTF和其他格式。
HTML file 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" type="text/css" href="style.css"/> *--> css file* 
<title></title>
</head>
<body>
<div class="cw-default">
<p><span class="sans"><b>Short title</b></span> this is text for testing<i>italic text</i>.</p>
<p class="center">this is test</p>
</div>
</body>
</html>

style.css文件会在html中添加属性,我希望这些属性值也能出现在生成的FO文件中。

/* Style Sheet */

.cw-default { font-size: 1em; }
.sans  { font-family: arial,helvetica }
.center   {text-align: center;}

1
嗨Param,欢迎使用SO。你能否添加一些你尝试过的代码示例?这样我们就可以看到出了什么问题,或许可以更好地帮助你。 - Bazzz
请参见https://dev59.com/-mgv5IYBdhLWcg3wYvyi#21345708。 - Peter Krauss
2个回答

4
我们在许多项目中都使用了这个工具:

Werner Donne的CSS转XSL FO工具

。它是一种结合了XSL和代码的工具,可以将CSS和CSS2转换为XSL FO格式。

另外还有一些工具可以直接将HTML+CSS或XML+CSS转换为PDF,可以参考这个链接:https://dev59.com/-mgv5IYBdhLWcg3wYvyi#21345708。 - Peter Krauss

0

将HTML转换为xsl-fo是从一种标记语言到另一种标记语言的转换。它们之间的区别在于,HTML用于在浏览器中显示,而xsl-fo则用于通过渲染器转换为PDF。
CSS不是用于转换标记语言的工具,而是用于样式化标记语言。您可以将其与HTML和xsl-fo一起使用,但这并不意味着它能够进行转换。专门用于转换的语言是XSLT。这是您想要实现的正确工具。请注意,XSLT使用XML输入,而大多数HTML不是有效的XML,但XHTML是。只需确保关闭标签即可;-)
以下是一个示例:Xslt to xsl-fo transformation


我能够通过XSLT将HTML转换为XSL-FO,但我也想要包含所有属性(如对齐、填充、颜色等)的CSS。为了在XSL-FO中实现CSS样式,我需要一些建议。 - user2331011
在类中触发CSS,您可以使用属性来驱动转换。一个想法是https://dev59.com/-HNA5IYBdhLWcg3wZ85S - Andreas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接