Coldfusion cfpdf миниатюра плюс предварительный просмотр?

У нас на сайте много PDF -контента. У меня есть несколько очень полезных миниатюр CFPDF, сгенерированных на странице 1 каждого PDF. Я подумал, что было бы неплохо, чтобы миниатюра 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 -файлы?

Спасибо!

2 ответа

Решение

(Если я правильно понимаю вопрос...)

Конечно, вы можете использовать слияние для извлечения одной страницы:

<cfpdf action = "merge" 
    source="c:\dev\myFile.pdf"
    pages="10"
    name="singlePage" />

<cfcontent type="application/pdf" variable="#ToBinary(singlePage)#">    

что произойдет, если несколько человек одновременно просматривают разные PDF-файлы?

Изменить: Некоторые из них в конечном итоге будут просматривать неправильную страницу и / или эскиз изображения;) Чтобы избежать этого, вы должны каждый раз генерировать уникальное имя файла, например, с помощью getTempFile (), createUUID () & ". Pdf", etcetera.,

Хотя технически вам не нужно создавать файл. Вы можете создавать изображения / PDF-файлы только в памяти и обслуживать их с помощью cfcontent (как в примере выше).

Это очень просто

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

Это превратит первую страницу в JPG

Другие вопросы по тегам