將 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 執行相同的轉換。

  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(每英吋點數) - 較高的 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 會以串流方式處理輸入,因此記憶體使用量保持較低。然而,極大的檔案可能會受到服務限制;請參閱官方文件以了解確切的門檻。

進一步閱讀