0

我有一个自定义 Drupal 7 模块,它打印出表单的内容,解析它并用等效的 div 替换所有表单元素,然后使用DOMDocument().

然后通过wkhtmltopdf运行以生成 PDF。我也有一点preg_replace可以将所有出现的 转换textarea/input.div-textarea/.div-input某些内联 CSS 中的。

然而,问题是默认的 Drupal CSS 文件和包含在自定义主题中的 CSS 文件无法被这个正则表达式处理,因为该drupal_get_css()函数返回<link>标签和 CSS 的@import规则。

所以问题是:你知道我怎样才能让 Drupal 的主题输出打印 HTML 中 CSS 文件的实际原始内容而不是这些样式表链接,以便我可以在它上面运行替换功能吗?

或者有没有更好的方法将 CSS 规则从一个元素/类复制到另一个?

4

2 回答 2

1

我使用 php 函数做到了这一点:file_get_contents

然后你的代码看起来像:

$css = file_get_contents(drupal_get_path('theme', 'my_theme') . 'css/my_css.css');

然后您可以在任何模板中打印该 css 或附加到任何字符串以获取输出。

编辑:

要获取所有 css 文件的列表,请运行:$css_list = drupal_add_css();

于 2013-02-14T18:29:53.103 回答
1

将 CSS 作为字符串加载后(请参阅@danielson317 的回答,了解如何执行此操作的一个很好的示例),使用drupal_add_html_head().

如果添加第二个key参数,则可以使用hook_html_head_alter().

于 2013-02-14T21:43:52.173 回答