تحويل صور JPG إلى مستندات PDF برمجيًا هو طلب شائع لمطوري PHP الذين يبنون ميزات التقارير أو الأرشفة. يتيح لك Aspose.Words Cloud SDK for PHP تحويل JPG إلى PDF في PHP ببضع أسطر من الشيفرة فقط. في هذا الدليل ستشاهد شرحًا خطوة‑بخطوة، مثالًا عمليًا كاملًا، وأوامر cURL لواجهة REST API. ستتعلم أيضًا كيفية ضبط DPI وجودة الصورة للحصول على أفضل النتائج.
إعداد Aspose.Words Cloud SDK للـ PHP
قبل أن تبدأ، تأكد من أن لديك:
- PHP 7.4 أو أعلى
- Composer مثبت
- حساب Aspose Cloud مع Client Id و Client Secret
- الوصول إلى الشبكة على
https://api.aspose.cloud
قم بتثبيت SDK عبر Composer:
composer require aspose-cloud/aspose-words-cloud
قم بتحميل أحدث حزمة من صفحة الإصدار الرسمية: Aspose.Words Cloud SDK for PHP تحميل.
الآن قم بتكوين SDK باستخدام بيانات الاعتماد الخاصة بك:
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');
مع إعداد التكوين، يمكنك إنشاء مثيل WordsApi والبدء في التحويل.
تحويل JPG إلى PDF في PHP: دليل خطوة بخطوة
الخطوة 1: تحميل المستند المصدر
افتح ملف JPG كتيار بحيث يتم معالجة الصور الكبيرة بكفاءة.
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');
الخطوة 2: تكوين خيارات التحويل
حدد DPI وجودة الصورة المطلوبة. تؤثر هذه الإعدادات مباشرةً على حجم وجودة ملف PDF الناتج، وهو أمر مهم عند تحويل JPG إلى PDF باستخدام PHP.
use Aspose\Words\Model\ConvertOptions;
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300); // horizontal DPI
$convertOptions->setDpiY(300); // vertical DPI
$convertOptions->setImageQuality(80); // 0‑100
الخطوة 3: إنشاء طلب التحويل
قم بإعداد كائن الطلب مع تدفق الإدخال، التنسيق المستهدف، والخيارات.
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
);
الخطوة 4: تنفيذ التحويل وحفظ PDF
استدعِ API، استلم بيانات PDF الثنائية، واكتبها إلى ملف.
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";
}
مثال كامل يعمل لتحويل JPG إلى PDF في PHP
يوضح المثال أدناه التنفيذ الكامل من البداية إلى النهاية.
<?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);
}
ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتتناسب مع بيئتك الفعلية، وتحقق من تثبيت جميع الاعتماديات المطلوبة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
استخدام cURL لتحويل صور JPG إلى مستندات PDF
إذا كنت تفضل استدعاء REST مباشر، يمكن إجراء نفس التحويل باستخدام cURL.
- الحصول على رمز الوصول
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- تحميل ملف JPG المصدر إلى التخزين
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/sample.jpg" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--data-binary "@sample.jpg"
- تنفيذ التحويل
curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
- قم بتنزيل ملف PDF الناتج (إذا لم تستخدم
-oأعلاه)
curl -X GET "https://api.aspose.cloud/v4.0/words/result.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o result.pdf
هذه الأوامر توضح نفس سير العمل دون كتابة أي شفرة PHP. لمزيد من التفاصيل، راجع وثائق API الرسمية.
ضبط إعدادات التحويل بدقة للحصول على مخرجات PDF مثالية
يوفر SDK عدة خيارات للتحكم في مظهر وحجم ملف PDF المُنشأ.
- DPI (نقطة في البوصة) - DPI أعلى (مثلاً 300) ينتج مخرجات أكثر وضوحًا مناسبة للطباعة. يتم الضبط باستخدام
setDpiXوsetDpiY. - ImageQuality - يتحكم في مستوى ضغط JPEG (0‑100). القيم الأقل تقلل حجم الملف على حساب جودة الصورة.
- Additional options - تدعم فئة
ConvertOptionsأيضًاsetPageSizeوsetPageOrientationوsetColorMode. راجع API reference للقائمة الكاملة.
مثال على ضبط DPI والجودة (معروض بالفعل في دليل الخطوات):
$convertOptions = new ConvertOptions();
$convertOptions->setDpiX(300);
$convertOptions->setDpiY(300);
$convertOptions->setImageQuality(80);
النقاط الرئيسية
باستخدام Aspose.Words Cloud SDK for PHP، يمكنك بسهولة تحويل JPG إلى PDF في PHP دون الحاجة إلى التعامل مع معالجة الصور منخفضة المستوى. يتعامل SDK مع البث، DPI، وجودة الصورة، مما يسمح لك بالتركيز على منطق الأعمال. تذكر تأمين Client Id و Client Secret الخاصين بك، وفكر في الحصول على ترخيص مؤقت للتقييم قبل شراء ترخيص كامل. تتوفر تفاصيل الأسعار على صفحة المنتج، ويمكن الحصول على ترخيص مؤقت من صفحة الترخيص المؤقت. مع الشيفرة وأمثلة cURL المقدمة، أنت جاهز لدمج تحويل JPG إلى PDF في أي تطبيق ويب أو سطح مكتب PHP.
الأسئلة التي قد تكون لديك
-
ما هي أبسط طريقة لتحويل JPG إلى PDF في PHP؟
السطر الواحد المعروض في المثال الكامل يستخدمConvertDocumentRequestمع تعيين تنسيق الهدف إلى"pdf". هذه الدعوة الواحدة تقوم بإجراء التحويل بالكامل. -
هل يمكنني تحويل ملفات JPG متعددة في طلب واحد؟
تقوم الواجهة البرمجية بمعالجة ملف مصدر واحد لكل طلب. للتعامل مع دفعات، قم بالتكرار عبر قائمة الملفات الخاصة بك واستدعِ التحويل لكل صورة. -
كيف يمكنني التحكم في حجم ملف PDF الناتج؟
اضبطDpiXوDpiYوImageQualityفيConvertOptions. تقليل DPI والجودة يقلل من حجم الملف، بينما القيم الأعلى تحسن الدقة البصرية. -
هل هناك حد لحجم صورة JPG التي يمكنني تحويلها؟
يقوم SDK ببث الإدخال، لذا يبقى استهلاك الذاكرة منخفضًا. ومع ذلك، قد تكون الملفات الكبيرة جدًا خاضعة لحدود الخدمة؛ راجع الوثائق الرسمية للحصول على العتبات الدقيقة.