我们网站上有大量PDF内容。我有一些从每个PDF的第1页生成的完全可用的CFPDF缩略图。我认为将缩略图jpg作为链接是很好的,当你点击它时,你要么按原样看到第一页,要么生成全尺寸的另一个预览。
我正在尝试使用CFPDF的合并操作,但到目前为止没有太多运气。似乎没有办法从PDF中提取单个页面 - 只删除它们。
有人有什么建议吗?我真的很感激!谢谢!
更新:尝试澄清,这是我现在正在使用的代码。抱歉混乱!
<cfset dir = expandPath("\images\thumbs")>
<cfif not directoryExists(dir)>
<cfdirectory action="create" directory="#dir#">
</cfif>
<cfset firstPage = expandPath("\images\thumbs\firstPage.pdf")>
<cfpdf action="thumbnail"
source="source"
destination="#dir#"
format="jpg"
scale="40"
overwrite="yes"
pages="1"
resolution="low">
<cfpdf action="merge"
source="sameSource"
pages="1"
destination="#firstPage#"
overwrite="yes">
<a href="firstPage.pdf" target="_blank">
<img src="thumbnail.jpg" style="border: 1px solid silver;">
</a>
无论如何,我希望能够更好地解释我想要做的事情。就像我说的,这是有效的,但firstPage.pdf始终只是一个文件 - 例如,如果有几个人同时预览不同的PDF,会发生什么?
谢谢!
答案 0 :(得分:2)
(如果我正确地理解了这个问题......)
当然,您可以使用合并来提取单个页面:
<cfpdf action = "merge"
source="c:\dev\myFile.pdf"
pages="10"
name="singlePage" />
<cfcontent type="application/pdf" variable="#ToBinary(singlePage)#">
如果有几个人正在预览不同的PDF,会发生什么 同时,例如?
编辑:其中一些人最终会预览错误的页面和/或缩略图;)为避免这种情况,您每次都必须生成一个唯一的文件名,例如使用getTempFile(),createUUID()&amp;“。pdf”,等等。
虽然从技术上讲,您不必创建文件。您只能在内存中生成图像/ pdf并使用cfcontent提供它们(如上例所示)。
答案 1 :(得分:1)
很容易
<cfpdf source="pdfdata" pages="1" action="thumbnail" destination="." format="jpg" overwrite="true" resolution="high" scale="25">
这将把第一页变成jpg