Pergunta

temos muitos conteúdos PDF em nosso site.Tenho algumas miniaturas de CFPDF perfeitamente utilizáveis geradas a partir da página 1 de cada PDF.Achei que seria bom ter a miniatura jpg um link de forma que, quando você clicar nela, você veja a primeira página como está ou outra visualização em escala real seja gerada.

Estou experimentando usar a ação de mesclagem do CFPDF, mas sem muita sorte até agora.Não parece haver uma maneira de apenas extrair uma única página do PDF - apenas excluí-la.

Alguém tem alguma sugestão?Eu realmente aprecio isso!Obrigado!

ATUALIZAÇÃO: para tentar esclarecer, aqui está o código que estou usando agora.Desculpe a confusão!

<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>

De qualquer forma, espero que isso explique melhor o que estou tentando fazer.Como eu disse, isso funciona, mas firstPage.pdf é sempre apenas um arquivo - o que acontece se várias pessoas estiverem visualizando PDFs diferentes ao mesmo tempo, por exemplo?

Obrigado!

Foi útil?

Solução

(Se estou entendendo a pergunta corretamente ...)

Claro, você pode usar mesclar para extrair uma única página:

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

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

o que acontece se várias pessoas visualizarem PDFs diferentes no mesmo tempo, por exemplo?

Editar: alguns deles acabarão visualizando a página errada e / ou a imagem em miniatura;) Para evitar isso, você deve gerar um nome de arquivo exclusivo a cada vez,como usar getTempFile () , createUUID () & ". pdf", etc.

Embora tecnicamente você não precise criar um arquivo.Você pode gerar imagens / PDFs apenas na memória e exibi-los com cfcontent (como no exemplo acima).

Outras dicas

É muito fácil

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

Isso transformará a página um em um jpg

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top