如何提供用于呈现PDF的样式表?

时间:2014-05-02 20:18:21

标签: css coldfusion pdf-generation coldfusion-10

继上一个问题后,我设法获得了屏幕&#39;使用<cfdocument format="pdf">标记将文档的版本(HTML)转换为PDF格式。出于显而易见的原因(例如,不同的标题样式),我需要PDF的样式与屏幕版本的样式不同。

我知道您可以在CSS中使用媒体查询,以便为打印,屏幕,电视等应用不同的样式。但是,如何为<cfdocument>标记提供不同的CSS样式集以便它呈现正确?

我的初始解决方案是将一个类应用于名为div的{​​{1}}标记的包含<cfdocument>,然后根据我的主CSS文件中的该类为内容编写新样式。例如,样式将是.pdf。 CFML看起来像这样:

.pdf h1 {font-size:20px;}

有没有更好的方法可以做到这一点?反正有没有为PDF渲染传递不同的样式表?可以用媒体查询来完成吗?

1 个答案:

答案 0 :(得分:1)

如何通过查询字符串中的参数生成PDF?像index.cfm?page=foo&format=pdf这样的东西?如果你不是,你可以轻松地添加这样的参数,然后在你的CFM中:

<link href="/css/mainStyleSheet.css" rel="stylesheet" type="text/css">
<cfif structKeyExists(url, "format") AND url.format EQ "pdf">
     <link href="/css/pdfStyleSheet.css" rel="stylesheet" type="text/css">
</cfif>

pdfStyleSheet.css仅包含PDF的CSS覆盖。