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.

  1. 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"
  1. 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"
  1. 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
  1. Descargar el PDF resultante (si no se usa -o arriba)
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 setDpiX y setDpiY.
  • 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 ConvertOptions también admite setPageSize, setPageOrientation y setColorMode. 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 utiliza ConvertDocumentRequest con 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?
    Ajuste DpiX, DpiY y ImageQuality en ConvertOptions. 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.

Lecturas adicionales