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 Download.

ახლა კონფიგურირეთ 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 (Dots Per Inch) - მაღალი 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 შევსება (stream) ინპუტს, ამიტომ მეხსიერების მოხმარება დაბალია. თუმცა, ძალიან დიდი ფაილები შეიძლება იყოს სერვისის ლიმიტებზე დამოკიდებული; მიმართეთ ოფიციალურ დოკუმენტაციას ზუსტი ზღვარის შესადგენად.

დამატებითი კითხვა