【问题标题】:Importing external CSS file when converting to HTML转换为 HTML 时导入外部 CSS 文件
【发布时间】:2015-09-28 04:00:40
【问题描述】:

我正在尝试使用给定的示例程序将 docx 文件转换为 HTML 文件。
样本表明:

String userCSS = "html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img, 
  ol, ul, li, table, caption, tbody, tfoot, thead, tr, th, td " +
                      "{ margin: 0; padding: 0; border: 0;}" +
                   "body {line-height: 1;} ";
htmlSettings.setUserCSS(userCSS);

尽管setUserCSS 是一种折旧的方法。 这很好用,但我有自己的 css 文件,我想使用它。
我想尽可能避免将其作为字符串从文件中提取出来。

除此之外,我还想组合多个 css 文件,以便生成的输出 html 的顶部包含:

<link rel="stylesheet" type="text/css" href="stylesheet1.css"/>
<link rel="stylesheet" type="text/css" href="stylesheet2.css"/>
<link rel="stylesheet" type="text/css" href="stylesheet3.css"/>

在头脑中。

那个,或者找到我可以在 HTMLSettings 类上调用的 setUserCSS 方法的替代方法。

在这种情况下找不到太多,只能找到相反的方法。任何解决方案表示赞赏。谢谢。

【问题讨论】:

    标签: java docx4j


    【解决方案1】:

    我不知道您使用哪种语言编写此类程序。但是您可以通过编写一个将文件路径转换为 ​​css 链接的函数来做到这一点。

    例如:

    htmlSettings.loadCSS('path/stylesheet1.css');
    

    这将转换为

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

    【讨论】:

    • 我正在使用此处找到的 docx4j 库:github.com/plutext/docx4j。他们没有 loadCSS 方法,我也没有能力覆盖它。理论上,我可以编写一个函数来读取该 css 文件的内容并将其转换为字符串,但如前所述,我想避免这种情况。
    【解决方案2】:

    docx4j 的 HTML 输出的重点是根据文档中的格式创建 CSS。

    也就是说,如果 HTML 是通过 XSLT 创建的,则相关代码在 XsltHTMLFunctions.java 的 createStyleElement 方法中

    如果您使用的是非 XSLT 方法,则它位于 HTMLExporterVisitorDelegate 中。

    【讨论】:

    • 感谢您的回答;我想我可能有误解或用词错误,但我没有使用 ImportXHTML - 我有一个 doc 文件,我想生成 HTML;我想为 HTML 输出提供一个样式表。如果您回复的内容确实如此,那么我很抱歉不了解如何实施,但我认为我正在尝试做一些不同的事情。
    • 谢谢,这很有帮助,但我仍然不完全确定 HTMLExporterVisitorDelegate 如何处理外部 css 文件。我使用 FLAG_EXPORT_PREFER_XSL 作为我正在调用的 toHTML 方法的第三个参数,并且理想情况下希望将这些文件作为一些参数传递给我作为第一个参数传入的 HTMLSettings 对象上的方法。这看起来可能吗?
    • 为了清楚起见,另一种措辞是;有没有一种方法可以代替HTMLSettings.setUserCSS(),让我只传递一个允许Docx4J.toHTML 按预期运行的东西的实例?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    相关资源
    最近更新 更多