La conversione di immagini JPG in documenti PDF in modo programmatico è una necessità frequente per gli sviluppatori PHP che creano funzionalità di reporting o di archiviazione. Aspose.Words Cloud SDK for PHP consente di convertire JPG in PDF in PHP con poche righe di codice. In questa guida vedrai una panoramica passo‑a‑passo, un esempio completo funzionante e i comandi cURL per l’API REST. Imparerai anche come regolare finemente DPI e qualità dell’immagine per risultati ottimali.

Configurazione di Aspose.Words Cloud SDK per PHP

Prima di iniziare, assicurati di avere:

  • PHP 7.4 o versioni successive
  • Composer installato
  • Un account Aspose Cloud con Client Id e Client Secret
  • Accesso di rete a https://api.aspose.cloud

Installa l’SDK tramite Composer:

composer require aspose-cloud/aspose-words-cloud

Scarica il pacchetto più recente dalla pagina di rilascio ufficiale: Aspose.Words Cloud SDK for PHP Download.

Ora configura l’SDK con le tue credenziali:

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 configurazione pronta, è possibile creare un’istanza di WordsApi e iniziare la conversione.

Conversione da JPG a PDF in PHP: Guida passo-passo

Passo 1: Carica il documento di origine

Apri il file JPG come stream in modo che le immagini di grandi dimensioni vengano gestite in modo efficiente.

$inputJpgPath  = __DIR__ . '/sample.jpg';   // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');

Passo 2: Configura le opzioni di conversione

Imposta la DPI desiderata e la qualità dell’immagine. Queste impostazioni influenzano direttamente le dimensioni e la nitidezza del PDF di output, il che è importante quando converti JPG in PDF in PHP.

use Aspose\Words\Model\ConvertOptions;

$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);   // horizontal DPI
$convertOptions->setDpiY(300);   // vertical DPI
$convertOptions->setImageQuality(80); // 0‑100

Passo 3: Crea la richiesta di conversione

Prepara l’oggetto della richiesta con lo stream di input, il formato di destinazione e le opzioni.

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
);

Passo 4: Esegui la conversione e salva il PDF

Chiama l’API, ricevi i dati PDF binari e scrivili in un file.

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";
}

Esempio completo di funzionamento per la conversione da JPG a PDF in PHP

L’esempio seguente dimostra l’implementazione completa dall’inizio alla fine.

<?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: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Utilizzare cURL per Convertire Immagini JPG in Documenti PDF

Se preferisci una chiamata REST diretta, la stessa conversione può essere eseguita con cURL.

  1. Ottieni un token di accesso
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. Carica il JPG di origine nello storage
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. Esegui la conversione
   curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -o result.pdf
  1. Scarica il PDF risultante (se non usi -o sopra)
curl -X GET "https://api.aspose.cloud/v4.0/words/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o result.pdf

Questi comandi illustrano lo stesso flusso di lavoro senza scrivere alcun codice PHP. Per ulteriori dettagli, vedere la documentazione ufficiale dell’API.

Regolazione fine delle impostazioni di conversione per un output PDF ottimale

L’SDK offre diverse opzioni per controllare l’aspetto e le dimensioni del PDF generato.

  • DPI (punti per pollice) - Un DPI più alto (ad es., 300) produce un output più nitido adatto alla stampa. Impostare con setDpiX e setDpiY.
  • ImageQuality - Controlla il livello di compressione JPEG (0‑100). Valori più bassi riducono le dimensioni del file a scapito della fedeltà visiva.
  • Opzioni aggiuntive - La classe ConvertOptions supporta anche setPageSize, setPageOrientation e setColorMode. Consulta il riferimento API per l’elenco completo.

Esempio di impostazione DPI e qualità (già mostrato nella guida passo‑passo):

$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);
$convertOptions->setDpiY(300);
$convertOptions->setImageQuality(80);

Punti chiave

Utilizzando l’Aspose.Words Cloud SDK for PHP, è possibile convertire facilmente JPG in PDF in PHP senza doversi occupare dell’elaborazione di immagini a basso livello. L’SDK gestisce lo streaming, i DPI e la qualità dell’immagine, consentendoti di concentrarti sulla logica di business. Ricorda di proteggere il tuo Client Id e Client Secret, e considera la licenza temporanea per la valutazione prima di acquistare una licenza completa. I dettagli dei prezzi sono disponibili nella pagina del prodotto, e una licenza temporanea può essere ottenuta dalla pagina della licenza temporanea. Con il codice e gli esempi cURL forniti, sei pronto a integrare la conversione da JPG a PDF in qualsiasi applicazione PHP web o desktop.

Domande che potresti avere

  • Qual è il modo più semplice per convertire JPG in PDF in PHP?
    Il one‑liner mostrato nell’esempio completo utilizza ConvertDocumentRequest con il formato di destinazione impostato su "pdf". Questa singola chiamata esegue l’intera conversione.

  • Posso convertire più file JPG in una singola richiesta?
    L’API elabora un file sorgente per richiesta. Per gestire i batch, itera l’elenco dei tuoi file e invoca la conversione per ogni immagine.

  • Come controllo la dimensione del PDF di output?
    Regola DpiX, DpiY e ImageQuality in ConvertOptions. DPI e qualità più bassi riducono la dimensione del file, mentre valori più alti migliorano la fedeltà visiva.

  • Esiste un limite alla dimensione dell’immagine JPG che posso convertire?
    L’SDK trasmette in streaming l’input, quindi l’utilizzo della memoria rimane basso. Tuttavia, file estremamente grandi potrebbero essere soggetti a limiti del servizio; consultare la documentazione ufficiale per le soglie esatte.

Ulteriori letture