Las imágenes JPG o JPEG se encuentran entre las imágenes rasterizadas populares, ya que utilizan un complejo algoritmo de compresión con pérdida que permite a los usuarios crear gráficos más pequeños. La mayoría de los dispositivos, incluidos los de escritorio, móviles y otros dispositivos portátiles, admiten imágenes JPG. Ahora bien, si necesitamos compartir imágenes masivas, la conversión de JPG a PDF parece ser una solución viable. En este artículo, vamos a discutir los detalles sobre cómo convertir JPG a PDF en Python.
Recientemente desarrollamos un servicio gratuito Text to GIF, que puede usar para crear animaciones interesantes a partir de textos simples.
API de conversión de JPG a PDF
El alcance de este artículo se limita al lenguaje Python, por lo que enfatizaremos la utilización de Aspose.PDF Cloud SDK for Python. Es un contenedor alrededor de la API REST de la nube y le permite realizar todas las capacidades de procesamiento de archivos PDF dentro de las aplicaciones de Python. Proporciona las capacidades para crear, editar y transformar archivos PDF en varios formatos admitidos. También puede cargar una variedad de archivos, incluidos EPUB, PS, SVG, XPS, JPEG, etc., y transformarlos en PDF.
Ahora, el primer paso es la instalación del SDK, que está disponible para su descarga a través del repositorio PIP y GitHub. Ejecute el siguiente comando en la terminal/símbolo del sistema para instalar la última versión de SDK en el sistema.
pip install asposepdfcloud
Después de la instalación, el siguiente paso importante es la suscripción gratuita a nuestros servicios en la nube a través de Aspose.Cloud Dashboard. El propósito de esta suscripción es permitir que solo las personas autorizadas accedan a nuestros servicios de procesamiento de archivos. Si tiene una cuenta de GitHub o Google, simplemente regístrese o haga clic en el botón Crear una nueva cuenta.
Convertir JPG a PDF en Python
La conversión utilizando un fragmento de código de Python es bastante útil. Siga los pasos definidos a continuación para cumplir con este requisito.
- En primer lugar, cree una instancia de la clase ApiClient mientras proporciona el ID del cliente y el secreto del cliente como argumentos.
- En segundo lugar, cree un objeto de la clase PdfApi que tome el objeto ApiClient como argumento de entrada
- En tercer lugar, cree una instancia de la clase ImageTemplatesRequest donde definimos el nombre de la imagen de origen y las propiedades relacionadas, como el ancho, la altura y los detalles del margen.
- Finalmente, llame al método putimageinstoragetopdf(..) de la clase PdfApi para realizar la conversión
# obtener credenciales de cliente de https://dashboard.aspose.cloud/
def image2PDF():
try:
#Client credentials
client_secret = "1c9379bb7d701c26cc87e741a29987bb"
client_id = "bbf94a2c-6d7e-4020-b4d2-b9809741374e"
#initialize PdfApi client instance using client credetials
pdf_api_client = asposepdfcloud.api_client.ApiClient(client_secret, client_id)
# cree una instancia de PdfApi mientras pasa PdfApiClient como argumento
pdf_api = PdfApi(pdf_api_client)
#source image file
input_file = 'source.jpg'
#resultant PDF document
resultant_file = 'Resultant.pdf'
image_templates_details = asposepdfcloud.ImageTemplatesRequest
{
"IsOCR": True,
"OCRLangs": "eng",
"ImagesList": [
{
"ImagePath": input_file,
"ImageSrcType": "ImageSrcType.Common",
"LeftMargin": 10,
"RightMargin": 10,
"TopMargin": 10,
"BottomMargin": 10,
"PageWidth": 800,
"PageHeight": 1000,
"MarginInfo": {
"Left": 10,
"Right": 10,
"Top": 10,
"Bottom": 10
}
}
]
}
# llame a la API para convertir la imagen a formato PDF
response = pdf_api.put_image_in_storage_to_pdf(name=resultant_file, image_templates= image_templates_details)
# imprimir mensaje en consola (opcional)
print('Image successfully converted to PDF format !')
except ApiException as e:
print("Exception while calling PdfApi: {0}".format(e))
print("Code:" + str(e.code))
print("Message:" + e.message)
En caso de que necesitemos convertir más de una imagen en una llamada, especifique más instancias de ImagesList dentro del objeto ImageTemplatesRequest.
JPG a PDF usando comandos cURL
Los comandos cURL brindan una forma conveniente de acceder a las API REST a través del terminal de línea de comandos. Dado que Aspose.PDF Cloud está desarrollado según la arquitectura REST, también podemos acceder a él a través de los comandos cURL. Ahora, el primer paso es crear un token web JSON (JWT) basado en sus credenciales de cliente individuales. Entonces, ejecute el siguiente comando para generar el token JWT.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
Una vez que se haya generado el token JWT, utilice el siguiente comando cURL para convertir el formato JPG a PDF. El archivo resultante se carga luego en el almacenamiento en la nube.
curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/create/images" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: application/json" \
-d "{ \"IsOCR\": true, \"OCRLangs\": \"eng\", \"ImagesList\": [ { \"ImagePath\": \"source.jpg\", \"ImageSrcType\": \"Common\", \"LeftMargin\": 10, \"RightMargin\": 10, \"TopMargin\": 10, \"BottomMargin\": 10, \"PageWidth\": 800, \"PageHeight\": 1000, \"MarginInfo\": { \"Left\": 10, \"Right\": 10, \"Top\": 10, \"Bottom\": 10 } } ]}"
Para su referencia, el archivo JPG de origen y un documento PDF resultante se cargan en source.jpg y Image2PDF-Resultant.pdf.
Conclusión
En este artículo, hemos discutido los pasos para convertir JPG a PDF usando Python. Siguiendo las mismas instrucciones, también podemos convertir imágenes PNG, BMP y GIF a PDF. También hemos aprendido sobre el enfoque para convertir JPG a PDF usando comandos cURL. Sin embargo, nuestros SDK de Cloud se desarrollan bajo una licencia MIT, por lo que su fragmento de código completo está disponible para su descarga gratuita en GitHub.
Si tiene alguna consulta relacionada o encuentra algún problema al usar nuestras API, no dude en comunicarse con nosotros a través del foro gratuito de atención al cliente.
Artículos relacionados
También te recomendamos visitar los siguientes enlaces para conocer más sobre