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