Convertir des images JPG en documents PDF de manière programmatique est une exigence fréquente pour les développeurs PHP qui créent des fonctionnalités de reporting ou d’archivage. Aspose.Words Cloud SDK for PHP vous permet de convertir des JPG en PDF en PHP avec seulement quelques lignes de code. Dans ce guide, vous verrez une présentation étape par étape, un exemple complet fonctionnel, ainsi que des commandes cURL pour l’API REST. Vous apprendrez également comment ajuster finement le DPI et la qualité de l’image pour des résultats optimaux.
Configuration du SDK Aspose.Words Cloud pour PHP
Avant de commencer, assurez‑vous d’avoir :
- PHP 7.4 ou supérieur
- Composer installé
- Un compte Aspose Cloud avec Client Id et Client Secret
- Accès réseau à
https://api.aspose.cloud
Installez le SDK via Composer :
composer require aspose-cloud/aspose-words-cloud
Téléchargez le dernier package depuis la page de publication officielle : Aspose.Words Cloud SDK for PHP Download.
Configurez maintenant le SDK avec vos informations d’identification :
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');
Une fois la configuration prête, vous pouvez créer une instance WordsApi et commencer la conversion.
Conversion de JPG en PDF avec PHP : Guide étape par étape
Étape 1 : Charger le document source
Ouvrez le fichier JPG en tant que flux afin que les grandes images soient traitées efficacement.
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');
Étape 2 : Configurer les options de conversion
Définissez le DPI et la qualité d’image souhaités. Ces paramètres affectent directement la taille et la clarté du PDF de sortie, ce qui est important lorsque vous convertissez un JPG en 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
Étape 3 : Créez la requête de conversion
Préparez l’objet de requête avec le flux d’entrée, le format cible et les options.
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
);
Étape 4 : Exécuter la conversion et enregistrer le PDF
Appelez l’API, recevez les données PDF binaires et écrivez‑les dans un fichier.
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";
}
Exemple complet fonctionnel pour convertir JPG en PDF en PHP
L’exemple ci-dessous montre l’implémentation complète du début à la 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);
}
Remarque: Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez-vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Utilisation de cURL pour convertir des images JPG en documents PDF
Si vous préférez un appel REST direct, la même conversion peut être effectuée avec cURL.
- Obtenir un jeton d’accès
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Téléverser le JPG source vers le stockage
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/sample.jpg" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--data-binary "@sample.jpg"
- Exécuter la conversion
curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
- Télécharger le PDF résultant (si vous n’utilisez pas
-oci-dessus)
curl -X GET "https://api.aspose.cloud/v4.0/words/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
Ces commandes illustrent le même flux de travail sans écrire de code PHP. Pour plus de détails, consultez la documentation officielle de l’API.
Optimisation des paramètres de conversion pour une sortie PDF optimale
Le SDK propose plusieurs options pour contrôler l’apparence et la taille du PDF généré.
- DPI (points par pouce) - Un DPI plus élevé (p. ex., 300) produit une sortie plus nette adaptée à l’impression. Définissez-le avec
setDpiXetsetDpiY. - ImageQuality - Contrôle le niveau de compression JPEG (0‑100). Des valeurs plus faibles réduisent la taille du fichier au détriment de la fidélité visuelle.
- Options supplémentaires - La classe
ConvertOptionsprend également en chargesetPageSize,setPageOrientationetsetColorMode. Consultez la référence API pour la liste complète.
Exemple de définition du DPI et de la qualité (déjà présenté dans le guide) :
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);
$convertOptions->setDpiY(300);
$convertOptions->setImageQuality(80);
Points clés
En utilisant le Aspose.Words Cloud SDK for PHP, vous pouvez facilement convertir des JPG en PDF en PHP sans vous occuper du traitement d’image de bas niveau. Le SDK gère le streaming, le DPI et la qualité de l’image, vous permettant de vous concentrer sur la logique métier. N’oubliez pas de sécuriser votre Client Id et votre Client Secret, et envisagez la licence temporaire pour l’évaluation avant d’acheter une licence complète. Les détails de tarification sont disponibles sur la page du produit, et une licence temporaire peut être obtenue depuis la page de licence temporaire. Avec le code et les exemples cURL fournis, vous êtes prêt à intégrer la conversion de JPG en PDF dans n’importe quelle application PHP web ou de bureau.
Questions que vous pourriez avoir
-
Quelle est la façon la plus simple de convertir JPG en PDF en PHP ?
Le one‑liner présenté dans l’exemple complet utiliseConvertDocumentRequestavec le format cible défini sur"pdf". Cet appel unique effectue toute la conversion. -
Puis-je convertir plusieurs fichiers JPG en une seule requête ?
L’API traite un fichier source par requête. Pour gérer les lots, parcourez votre liste de fichiers et invoquez la conversion pour chaque image. -
Comment contrôler la taille du PDF de sortie ?
AjustezDpiX,DpiYetImageQualitydansConvertOptions. Un DPI et une qualité plus faibles réduisent la taille du fichier, tandis que des valeurs plus élevées améliorent la fidélité visuelle. -
Existe-t-il une limite à la taille de l’image JPG que je peux convertir ?
Le SDK diffuse le flux d’entrée, de sorte que l’utilisation de la mémoire reste faible. Cependant, les fichiers extrêmement volumineux peuvent être soumis aux limites du service ; consultez la documentation officielle pour connaître les seuils exacts.