การแปลงภาพ 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 หลายไฟล์ในคำขอเดียวได้หรือไม่?
API จะประมวลผลไฟล์ต้นฉบับหนึ่งไฟล์ต่อคำขอ เพื่อจัดการเป็นชุด ให้ทำการวนลูปรายการไฟล์ของคุณและเรียกการแปลงสำหรับแต่ละภาพ -
ฉันจะควบคุมขนาด PDF ที่ออกมาได้อย่างไร?
ปรับDpiX,DpiYและImageQualityในConvertOptions. ค่า DPI และคุณภาพที่ต่ำจะลดขนาดไฟล์, ในขณะที่ค่าที่สูงขึ้นจะเพิ่มความคมชัดของภาพ. -
มีขีดจำกัดขนาดของภาพ JPG ที่ฉันสามารถแปลงได้หรือไม่?
SDK ทำการสตรีมข้อมูลเข้า ดังนั้นการใช้หน่วยความจำจึงต่ำ อย่างไรก็ตาม ไฟล์ที่มีขนาดใหญ่มากอาจถูกจำกัดโดยข้อจำกัดของบริการ; โปรดดูที่ เอกสารอย่างเป็นทางการ เพื่อทราบเกณฑ์ที่แน่นอน