Convertir imágenes JPG a documentos PDF de forma programática es un requisito frecuente para los desarrolladores PHP que crean funciones de generación de informes o archivado. Aspose.Words Cloud SDK for PHP le permite convertir JPG a PDF en PHP con solo unas pocas líneas de código. En esta guía verá un recorrido paso a paso, un ejemplo completo y funcional, y comandos cURL para la API REST. También aprenderá cómo ajustar finamente la DPI y la calidad de la imagen para obtener resultados óptimos.
Configuración del SDK de Aspose.Words Cloud para PHP
Antes de comenzar, asegúrate de tener:
- PHP 7.4 o superior
- Composer instalado
- Una cuenta de Aspose Cloud con Client Id y Client Secret
- Acceso a la red a
https://api.aspose.cloud
Instale el SDK mediante Composer:
composer require aspose-cloud/aspose-words-cloud
Descargue el paquete más reciente desde la página oficial de lanzamientos: Aspose.Words Cloud SDK for PHP Descargar.
Ahora configure el SDK con sus credenciales:
require __DIR__ . '/vendor/autoload.php';
use Aspose\Words\Configuration;
$config = new Configuration();
$config->setClientId('YOUR_CLIENT_ID');
$config->setClientSecret('YOUR_CLIENT_SECRET');
$config->setHost('https://api.aspose.cloud');
Con la configuración lista, puedes crear una instancia de WordsApi y comenzar a convertir.
Conversión de JPG a PDF en PHP: Guía paso a paso
Paso 1: Cargar el documento de origen
Abra el archivo JPG como un flujo para que las imágenes grandes se manejen de manera eficiente.
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');
Paso 2: Configurar opciones de conversión
Establezca la DPI y la calidad de imagen deseadas. Estos ajustes afectan directamente al tamaño y la claridad del PDF de salida, lo cual es importante cuando convierte JPG a PDF en PHP.
use Aspose\Words\Model\ConvertOptions;
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300); // horizontal DPI
$convertOptions->setDpiY(300); // vertical DPI
$convertOptions->setImageQuality(80); // 0‑100
Paso 3: Crear la solicitud de conversión
Prepare el objeto de solicitud con el flujo de entrada, el formato de destino y las opciones.
use Aspose\Words\Model\Requests\ConvertDocumentRequest;
$request = new ConvertDocumentRequest(
$jpgStream, // Input file stream
'pdf', // Target format
null, // outPath – null to receive binary response
null, // storage – default
null, // folder – default
$convertOptions // conversion options
);
Paso 4: Ejecutar la conversión y guardar el PDF
Llame a la API, reciba datos PDF binarios y escríbalos en un archivo.
use Aspose\Words\WordsApi;
$wordsApi = new WordsApi($config);
try {
$pdfBinary = $wordsApi->convertDocument($request);
$outputPdfPath = __DIR__ . '/result.pdf';
$pdfHandle = fopen($outputPdfPath, 'wb');
fwrite($pdfHandle, $pdfBinary);
fclose($pdfHandle);
echo "Conversion successful: {$outputPdfPath}\n";
} catch (Exception $e) {
echo 'Error during conversion: ', $e->getMessage(), "\n";
}
Ejemplo completo y funcional para convertir JPG a PDF en PHP
El ejemplo a continuación muestra la implementación completa de principio a fin.
<?php
require __DIR__ . '/vendor/autoload.php';
use Aspose\Words\Configuration;
use Aspose\Words\WordsApi;
use Aspose\Words\Model\ConvertOptions;
use Aspose\Words\Model\Requests\ConvertDocumentRequest;
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$config = new Configuration();
$config->setClientId($clientId);
$config->setClientSecret($clientSecret);
$config->setHost('https://api.aspose.cloud');
$wordsApi = new WordsApi($config);
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$outputPdfPath = __DIR__ . '/result.pdf'; // destination PDF
// Open JPG as a stream to avoid loading whole file into memory for large images
$jpgStream = fopen($inputJpgPath, 'rb');
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300); // horizontal DPI
$convertOptions->setDpiY(300); // vertical DPI
$convertOptions->setImageQuality(80); // optional, 0‑100
$request = new ConvertDocumentRequest(
$jpgStream, // Input file stream
'pdf', // Target format
null, // outPath – null to receive binary response
null, // storage – default
null, // folder – default
$convertOptions // conversion options
);
try {
// API returns binary PDF data
$pdfBinary = $wordsApi->convertDocument($request);
// Write binary data to file efficiently
$pdfHandle = fopen($outputPdfPath, 'wb');
fwrite($pdfHandle, $pdfBinary);
fclose($pdfHandle);
echo "Conversion successful: {$outputPdfPath}\n";
} catch (Exception $e) {
echo 'Error during conversion: ', $e->getMessage(), "\n";
}
// Cleanup
if (is_resource($jpgStream)) {
fclose($jpgStream);
}
Nota: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén instaladas correctamente y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.
Usar cURL para Convertir Imágenes JPG a Documentos PDF
Si prefieres una llamada REST directa, la misma conversión se puede realizar con cURL.
- Obtener un token de acceso
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Subir el JPG de origen al almacenamiento
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/sample.jpg" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--data-binary "@sample.jpg"
- Ejecutar la conversión
curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
- Descargar el PDF resultante (si no se usa
-oarriba)
curl -X GET "https://api.aspose.cloud/v4.0/words/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Estos comandos ilustran el mismo flujo de trabajo sin escribir ningún código PHP. Para obtener más detalles, consulte la documentación oficial de la API.
Ajuste fino de la configuración de conversión para una salida PDF óptima
El SDK ofrece varias opciones para controlar la apariencia y el tamaño del PDF generado.
- DPI (Puntos Por Pulgada) - Un DPI más alto (p.ej., 300) produce una salida más nítida adecuada para impresión. Configúrelo con
setDpiXysetDpiY. - ImageQuality - Controla el nivel de compresión JPEG (0‑100). Valores más bajos reducen el tamaño del archivo a costa de la fidelidad visual.
- Additional options - La clase
ConvertOptionstambién admitesetPageSize,setPageOrientationysetColorMode. Consulte la referencia de API para la lista completa.
Ejemplo de configuración de DPI y calidad (ya mostrado en el tutorial):
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);
$convertOptions->setDpiY(300);
$convertOptions->setImageQuality(80);
Conclusiones clave
Usando el Aspose.Words Cloud SDK for PHP, puedes convertir fácilmente JPG a PDF en PHP sin preocuparte por el procesamiento de imágenes de bajo nivel. El SDK maneja la transmisión, DPI y la calidad de la imagen, lo que te permite centrarte en la lógica de negocio. Recuerda proteger tu Client Id y Client Secret, y considera la licencia temporal para evaluación antes de comprar una licencia completa. Los detalles de precios están disponibles en la página del producto, y una licencia temporal se puede obtener en la página de licencia temporal. Con el código y los ejemplos de cURL proporcionados, estás listo para integrar la conversión de JPG a PDF en cualquier aplicación PHP web o de escritorio.
Preguntas que podrías tener
-
¿Cuál es la forma más sencilla de convertir JPG a PDF en PHP?
La línea única mostrada en el ejemplo completo utilizaConvertDocumentRequestcon el formato de destino establecido en"pdf". Esta única llamada realiza toda la conversión. -
¿Puedo convertir varios archivos JPG en una sola solicitud?
La API procesa un archivo fuente por solicitud. Para manejar lotes, recorra su lista de archivos y llame a la conversión para cada imagen. -
¿Cómo controlo el tamaño del PDF de salida?
AjusteDpiX,DpiYyImageQualityenConvertOptions. Un DPI y una calidad más bajos reducen el tamaño del archivo, mientras que valores más altos mejoran la fidelidad visual. -
¿Existe un límite en el tamaño de la imagen JPG que puedo convertir?
El SDK transmite la entrada en streaming, por lo que el uso de memoria se mantiene bajo. Sin embargo, los archivos extremadamente grandes pueden estar sujetos a límites del servicio; consulte la documentación oficial para conocer los umbrales exactos.