继上一个问题后,我设法获得了屏幕&#39;使用<cfdocument format="pdf">
标记将文档的版本(HTML)转换为PDF格式。出于显而易见的原因(例如,不同的标题样式),我需要PDF的样式与屏幕版本的样式不同。
我知道您可以在CSS中使用媒体查询,以便为打印,屏幕,电视等应用不同的样式。但是,如何为<cfdocument>
标记提供不同的CSS样式集以便它呈现正确?
我的初始解决方案是将一个类应用于名为div
的{{1}}标记的包含<cfdocument>
,然后根据我的主CSS文件中的该类为内容编写新样式。例如,样式将是.pdf
。 CFML看起来像这样:
.pdf h1 {font-size:20px;}
有没有更好的方法可以做到这一点?反正有没有为PDF渲染传递不同的样式表?可以用媒体查询来完成吗?
答案 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覆盖。