es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo descargar un archivo pdf desde la respuesta de la API de Dropbox

Estoy recibiendo una respuesta de la API Coldbox en ColdFusion, pero no puedo convertir esta respuesta a PDF en ColdFusion. Adjunto una imagen de la respuesta a continuación.

Aquí está mi código:

<cfhttp result="get" method="POST" url="https://content.dropboxapi.com/2/files/download" getasbinary="yes">
   <cfhttpparam type="header" name="Authorization" value="#token#">
   <cfhttpparam type="header" name="Dropbox-API-Arg" value="#serializeJSON(pathData)#">
</cfhttpparam></cfhttpparam></cfhttp>

<cfheader name="content-disposition" value="inline; filename=test.pdf"></cfheader>
<cfheader name="content-transfer-encoding" value="binary"></cfheader>
<cfcontent type="application/pdf" variable="#get.Filecontent#" reset="true"></cfcontent>

Quiero llamar a la API y descargar el archivo en la siguiente pestaña.

Por favor, avísenme si alguien puede ayudarme a solucionar ese problema.

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    En el código proporcionado, parece que la respuesta de la API se descarga correctamente utilizando la etiqueta cfhttp. Sin embargo, parece que hay un problema al convertir el archivo descargado en formato PDF.

    Una posible solución es utilizar una biblioteca de terceros en ColdFusion como cfpdf o iText para convertir el archivo descargado en formato PDF. Aquí tienes un ejemplo de código utilizando cfpdf:

    <cfpdf action="read" source="#get.Filecontent#" name="pdfContent">
    <cfpdf action="write" destination="outputFileName.pdf" source="#pdfContent#">
    

    En el fragmento de código anterior, el contenido del archivo descargado se pasa a cfpdf con la propiedad action establecida en read. Luego, la variable pdfContent resultante se pasa nuevamente a cfpdf con la propiedad action establecida en write para generar un archivo PDF con una destination especificada.

    Es importante tener en cuenta que la propiedad source para ambas etiquetas cfpdf espera una ruta de archivo, por lo que es posible que debas crear un archivo temporal para almacenar el contenido descargado y pasar su ruta a la propiedad source.

    Otra posible solución es utilizar la API de Dropbox para convertir el archivo descargado directamente en formato PDF, si la API lo admite. Puedes consultar la documentación de la API o consultar al proveedor de la API para ver si esto es posible.

Comments are closed.