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.
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:
En el fragmento de código anterior, el contenido del archivo descargado se pasa a
cfpdf
con la propiedadaction
establecida en read. Luego, la variablepdfContent
resultante se pasa nuevamente acfpdf
con la propiedadaction
establecida en write para generar un archivo PDF con unadestination
especificada.Es importante tener en cuenta que la propiedad
source
para ambas etiquetascfpdf
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 propiedadsource
.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.