將 JPG 圖像程式化轉換為 PDF 文件是 PHP 開發人員在構建報告或歸檔功能時的常見需求。 Aspose.Words Cloud SDK for PHP 讓您只需幾行程式碼即可在 PHP 中將 JPG 轉換為 PDF。在本指南中,您將看到一步一步的演練、完整的工作範例以及 REST API 的 cURL 命令。您還將學習如何微調 DPI 和圖像品質以獲得最佳結果。
設定 Aspose.Words Cloud SDK for PHP
在開始之前,請確保您已具備:
- PHP 7.4 或更高版本
- 已安裝 Composer
- 具有 Client Id 和 Client Secret 的 Aspose Cloud 帳戶
- 可存取
https://api.aspose.cloud
使用 Composer 安裝 SDK:
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 實例並開始轉換。
在 PHP 中將 JPG 轉換為 PDF:逐步說明
步驟 1:載入來源文件
將 JPG 檔案作為串流開啟,以有效處理大型圖像。
$inputJpgPath = __DIR__ . '/sample.jpg'; // source JPG
$jpgStream = fopen($inputJpgPath, 'rb');
步驟 2:設定轉換選項
設定所需的 DPI 和圖像品質。這些設定直接影響輸出 PDF 的大小和清晰度,這在使用 PHP 將 JPG 轉換為 PDF 時非常重要。
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,您可以輕鬆在 PHP 中將 JPG 轉換為 PDF,而無需處理低層次的圖像處理。該 SDK 處理串流、DPI 和圖像品質,讓您專注於業務邏輯。請務必保護您的 Client Id 和 Client Secret,並在購買正式授權前考慮使用臨時授權進行評估。產品頁面提供價格細節,您可以從臨時授權頁面獲取臨時授權。使用提供的程式碼和 cURL 範例,您即可將 JPG 轉 PDF 的轉換整合到任何 Web 或桌面 PHP 應用程式中。
您可能有的問題
-
什麼是將 JPG 轉換為 PDF 在 PHP 中最簡單的方法?
完整範例中顯示的一行程式碼使用ConvertDocumentRequest,將目標格式設定為"pdf"。此單一呼叫即可完成整個轉換。 -
我可以在單個請求中轉換多個 JPG 文件嗎?
API 每個請求僅處理一個來源文件。若要處理批次,請遍歷您的文件列表,並為每張圖像調用轉換。 -
如何控制輸出 PDF 的大小?
在ConvertOptions中調整DpiX、DpiY和ImageQuality。較低的 DPI 和品質會減少檔案大小,而較高的數值則可提升視覺保真度。 -
是否對可轉換的 JPG 圖像大小有限制?
SDK 會以串流方式處理輸入,因此記憶體使用量保持較低。然而,極大的檔案可能會受到服務限制;請參閱官方文件以了解確切的門檻。