Конвертування 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.
- Отримати токен доступу
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 (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 передає вхідні дані потоково, тому використання пам’яті залишається низьким. Однак надзвичайно великі файли можуть підпадати під обмеження сервісу; зверніться до офіційної документації для отримання точних порогових значень.