Η μετατροπή εικόνων JPG σε έγγραφα PDF προγραμματιστικά αποτελεί συχνή απαίτηση για προγραμματιστές PHP που δημιουργούν λειτουργίες αναφοράς ή αρχειοθέτησης. Το Aspose.Words Cloud SDK for PHP σας επιτρέπει να μετατρέψετε JPG σε PDF σε PHP με λίγες μόνο γραμμές κώδικα. Σε αυτόν τον οδηγό θα δείτε μια βήμα‑βήμα παρουσίαση, ένα πλήρες λειτουργικό παράδειγμα και εντολές cURL για το REST API. Θα μάθετε επίσης πώς να ρυθμίσετε ακριβώς το DPI και την ποιότητα της εικόνας για βέλτιστα αποτελέσματα.
Ρύθμιση Aspose.Words Cloud SDK for 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, είτε web είτε desktop.
Ερωτήσεις που μπορεί να έχετε
-
Ποιος είναι ο πιο απλός τρόπος για να μετατρέψετε JPG σε PDF σε PHP?
Η μία‑γραμμή που εμφανίζεται στο πλήρες παράδειγμα χρησιμοποιείConvertDocumentRequestμε τον προορισμό μορφής ορισμένο σε"pdf". Αυτή η ενιαία κλήση εκτελεί ολόκληρη τη μετατροπή. -
Μπορώ να μετατρέψω πολλαπλά αρχεία JPG σε μία ενιαία αίτηση;
Το API επεξεργάζεται ένα αρχείο προέλευσης ανά αίτηση. Για να διαχειριστείτε παρτίδες, επαναλάβετε τη λίστα αρχείων σας και εκτελέστε τη μετατροπή για κάθε εικόνα. -
Πώς ελέγχω το μέγεθος του εξαγόμενου PDF;
Ρυθμίστε ταDpiX,DpiYκαιImageQualityστοConvertOptions. Τα χαμηλότερα DPI και η χαμηλότερη ποιότητα μειώνουν το μέγεθος του αρχείου, ενώ οι υψηλότερες τιμές βελτιώνουν την οπτική πιστότητα. -
Υπάρχει όριο στο μέγεθος της εικόνας JPG που μπορώ να μετατρέψω;
Το SDK μεταδίδει τη ροή εισόδου, έτσι η χρήση μνήμης παραμένει χαμηλή. Ωστόσο, εξαιρετικά μεγάλα αρχεία ενδέχεται να υπόκεινται σε όρια υπηρεσίας· συμβουλευτείτε την επίσημη τεκμηρίωση για τα ακριβή όρια.