我们的网站上有大量的PDF内容。我有一些非常有用的CFPDF缩略图生成的每个PDF的第1页。我认为有一个缩略图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会发生什么?
谢谢!
发布于 2012-02-22 04:56:14
(如果我对问题的理解正确...)
确保您可以使用merge来提取单个页面:
<cfpdf action = "merge"
source="c:\dev\myFile.pdf"
pages="10"
name="singlePage" />
<cfcontent type="application/pdf" variable="#ToBinary(singlePage)#"> 例如,如果几个人同时预览不同的PDF会发生什么情况?
编辑:它们中的一些将最终预览错误的页面和/或缩略图;)为了避免这种情况,您必须每次都生成一个唯一的文件名,例如使用getTempFile(),createUUID()和“.pdf”等。
尽管从技术上讲,您不必创建文件。您可以仅在内存中生成图像/pdf,并将其与cfcontent一起提供(如上例所示)。
发布于 2012-02-22 06:41:51
这很容易
<cfpdf source="pdfdata" pages="1" action="thumbnail" destination="." format="jpg" overwrite="true" resolution="high" scale="25">这将把第一页变成一个jpg。
https://stackoverflow.com/questions/9384682
复制相似问题