0

私たちのサイトにはたくさんの PDF コンテンツがあります。各 PDF のページ 1 から生成された完全に使用可能な CFPDF サムネイルがいくつかあります。サムネイルの jpg をクリックすると、最初のページがそのまま表示されるか、フル スケールの別のプレビューが生成されるようなリンクになるとよいと思いました。

私は CFPDF のマージ アクションを使用して実験していますが、今のところうまくいきません。PDF から 1 ページだけを抽出する方法はないようです。削除するだけです。

誰か提案はありますか?本当に感謝しています!ありがとう!

更新:明確にするために、これが私が現在使用しているコードです。混乱させて申し訳ありません!

<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 は常に 1 つのファイルにすぎません。たとえば、複数の人が同時に異なる PDF をプレビューしている場合はどうなりますか?

ありがとう!

4

2 に答える 2

2

(質問を正しく理解していれば...)

確かに、マージを使用して単一のページを抽出できます。

<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-21T20:56:14.290 に答える
1

それは非常に簡単です

<cfpdf source="pdfdata" pages="1" action="thumbnail" destination="." format="jpg" overwrite="true" resolution="high" scale="25">

これにより、ページ1がjpgに変わります

于 2012-02-21T22:41:50.980 に答える