המרת תמונות 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.

  1. קבל אסימון גישה
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. העלה את קובץ ה‑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"
  1. הפעל את ההמרה
curl -X GET "https://api.aspose.cloud/v4.0/words/sample.jpg?format=pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o result.pdf
  1. הורד את קובץ ה-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 מרובים בבקשה אחת?
    ה-API מעבד קובץ מקור אחד לכל בקשה. כדי לטפל באצוות, יש לבצע לולאה על רשימת הקבצים שלך ולהפעיל את ההמרה עבור כל תמונה.

  • איך אני שולט בגודל קובץ PDF הפלט?
    התאם את DpiX, DpiY ו-ImageQuality ב-ConvertOptions. DPI ואיכות נמוכים מצמצמים את גודל הקובץ, בעוד שערכים גבוהים משפרים את האמינות הוויזואלית.

  • האם יש מגבלה על גודל קובץ ה‑JPG שאני יכול להמיר?
    ה‑SDK משדר את הקלט, ולכן השימוש בזיכרון נשאר נמוך. עם זאת, קבצים גדולים במיוחד עשויים להיות כפופים למגבלות שירות; יש לעיין בתיעוד הרשמי לקבלת הספים המדויקים.

קריאה נוספת