使用 PHP 將 Excel 轉換為 PDF

我們廣泛使用 Excel 電子表格 來維護髮票、分類賬、庫存、賬戶、計算數據和其他報告。然而,PDF 是最流行的共享和打印文檔格式,不會丟失格式。在某些情況下,我們可能需要將 Excel 轉換為 PDF,以便以可移植的形式共享 Excel 數據。我們可以在雲端以編程方式輕鬆地將 Excel 電子表格轉換為 PDF 文檔。在本文中,我們將學習如何使用 PHP 將 Excel 轉換為 PDF。

本文應涵蓋以下主題:

Excel 到 PDF 轉換 REST API 和 PHP SDK

為了將 XLSX 轉換為 PDF,我們將使用 GroupDocs.Conversion Cloud 的 PHP SDK API。它使我們能夠將任何支持的文件格式 的文檔和圖像無縫轉換為我們需要的任何格式。請在控制台中使用以下命令安裝它:

composer require groupdocscloud/groupdocs-conversion-cloud

安裝後,請使用Composers的autoload來使用SDK,如下圖:

在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:

// 此代碼示例演示如何在代碼中添加您的客戶端 ID 和密碼。
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

// 初始化配置
$configuration = new GroupDocs\Conversion\Configuration();

// 設置配置
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

在 PHP 中使用 REST API 將 Excel 轉換為 PDF

按照以下步驟,我們可以在雲端以編程方式輕鬆地將 Excel 文件轉換為 PDF 文檔:

  1. 上傳XLSX文件到雲端
  2. 將 Excel 轉換為 PDF
  3. 下載轉換後的PDF文件

上傳 Excel 文件

首先,我們將使用以下代碼示例將 XLSX 文件上傳到雲端:

// 此代碼示例演示如何將 XLSX 文件上傳到雲。
// 初始化 API 實例
$apiInstance = new GroupDocs\Conversion\FileApi($configuration);

// 輸入文件路徑
$file = "C:\\Files\\Conversion\\sample.xlsx";

// 創建上傳文件請求
$request = new GroupDocs\Conversion\Model\Requests\UploadFileRequest("sample.xlsx", $file, self::$MyStorage, null);

// 上傳文件
$response = $apiInstance->uploadFile($request);

因此,上傳的文件將在雲上儀表板的 文件部分 中可用。

在 PHP 中將 Excel 轉換為 PDF

現在,我們將按照以下步驟將上傳的 XLSX 文件轉換為 PDF 文檔:

  1. 首先,創建一個 ConvertApi 的實例。
  2. 接下來,初始化 ConvertSettings 實例並設置上傳的 XLSX 文件路徑。
  3. 然後,將“pdf”分配給格式並提供輸出文件路徑。
  4. 接下來,設置各種 SpreadsheetLoadOptions,例如 setOnePagePerSheet 等。
  5. 可選地,設置各種 PdfConvertOptions,例如 setCenterWindow、setMarginTop、setMarginLeft 等。
  6. 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  7. 最後,通過調用 ConvertApi.convertDocument() 方法進行轉換。

以下代碼示例顯示如何在 PHP 中使用 REST API 將 Excel 電子表格轉換為 PDF 文檔。

// 此代碼示例演示如何將 Excel 轉換為 PDF。
// 初始化 API 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);    // Storage
$settings->setFilePath("sample.xlsx");          // Input file
$settings->setFormat("pdf");                    // Output format
$settings->setOutputPath("convertedExcel.pdf"); // Output file

// 電子表格加載選項
$loadOptions = new GroupDocs\Conversion\Model\SpreadsheetLoadOptions();		
$loadOptions->setHideComments(true);    // Show hide comments
$loadOptions->setShowGridLines(false);  // Do not Show gridlines
$loadOptions->setOnePagePerSheet(true);	// One sheet per page

// 分配加載選項
$settings->setLoadOptions($loadOptions);

$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
$convertOptions->setCenterWindow(true); // Center window
$convertOptions->setMarginTop(5);       // Top margin
$convertOptions->setMarginLeft(5);      // Left margin
$convertOptions->setRemovePdfaCompliance(false);  // RemovecCompliance

// Assgin 轉換選項
$settings->setConvertOptions($convertOptions);

// 創建轉換文檔請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
// 完畢
echo "Document converted successfully: ", $response[0]->getUrl();
在 PHP 中使用 REST API 將 Excel 轉換為 PDF

使用 PHP 中的 REST API 將 Excel 轉換為 PDF。

下載轉換後的文件

上面的代碼示例會將轉換後的 PDF 文件保存在雲端。可以使用以下代碼示例下載它:

// 此代碼示例演示如何從雲端下載 PDF 文件。
// 初始化 API 實例
$apiInstance = new GroupDocs\Conversion\FileApi($configuration);

// 創建下載文件請求
$request = new GroupDocs\Conversion\Model\Requests\DownloadFileRequest("convertedExcel.pdf", self::$MyStorage, null);

// 下載文件
$response = $apiInstance->downloadFile($request);

在 PHP 中將特定的 Excel 電子表格轉換為 PDF

我們還可以按照以下步驟將特定的 Excel 電子表格轉換為 PDF 文檔:

  1. 首先,創建一個 ConvertApi 的實例。
  2. 接下來,初始化 ConvertSettings 實例。
  3. 然後,設置上傳的 XLSX 文件路徑。
  4. 還要為格式分配“pdf”並提供輸出文件路徑。
  5. 接下來,初始化 PdfConvertOptions 對象
  6. 然後,在以逗號分隔的數組中提供特定的工作表索引以進行轉換。
  7. 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  8. 最後,通過調用 ConvertApi.convertDocument() 方法進行轉換。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 將特定的 Excel 電子表格轉換為 PDF 文檔。請按照前面提到的步驟上傳和下載文件。

// 此代碼示例演示如何將特定的 Excel 工作表轉換為 PDF。
// 初始化 API 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.xlsx");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedSpecificSheet.pdf");

// 定義 PDF 轉換選項
$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
$convertOptions->setPages([2, 4]);  // Define pages (sheets) to convert

// 分配轉換選項
$settings->setConvertOptions($convertOptions);

// 創建轉換文檔請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
// 完畢
echo "Document converted successfully: ", $response[0]->getUrl();
在 PHP 中將特定的 Excel 電子表格轉換為 PDF

在 PHP 中將特定的 Excel 電子表格轉換為 PDF。

我們還可以按照前面提到的步驟將一系列電子表格從 Excel 轉換為 PDF 文件。但是,我們只需要提及如下所示的工作表範圍:

$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
$convertOptions->setFromPage(2);
$convertOptions->setPagesCount(4);

帶水印的 Excel 到 PDF 轉換

我們可以按照以下步驟將 Excel 電子表格轉換為 PDF 文檔並為轉換後的文檔添加水印:

  1. 首先,創建一個 ConvertApi 的實例。
  2. 接下來,初始化 ConvertSettings 實例。
  3. 然後,設置上傳的 XLSX 文件路徑。
  4. 還要為格式分配“pdf”並提供輸出文件路徑。
  5. 接下來,初始化 WatermarkOptions 對象並設置 Watermark Text、Color、Width、Height 等。
  6. 然後,定義 PdfConvertOptions 並分配 WatermarkOptions。
  7. 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  8. 最後,通過調用 ConvertApi.convertDocument() 方法進行轉換。

以下代碼示例展示瞭如何使用 PHP 中的 REST API 將 Excel 電子表格轉換為 PDF 文檔並向轉換後的 PDF 文檔添加水印。請按照前面提到的步驟上傳和下載文件。

// 此代碼示例演示如何將 Excel 轉換為帶水印的 PDF。
// 初始化 API 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.xlsx");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedWithWatermark.pdf");

// 定義水印
$watermark = new GroupDocs\Conversion\Model\WatermarkOptions();
$watermark->setText("CONFIDENTIAL");
$watermark->setBold(true);
$watermark->setFontSize(44);
$watermark->setColor("Gray");
$watermark->setBackground(false);
$watermark->setRotationAngle(30);
$watermark->setLeft(100);
$watermark->setTop(250);

// 定義 PDF 轉換選項
$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
// 設置水印
$convertOptions->setWatermarkOptions($watermark);

// 分配轉換選項
$settings->setConvertOptions($convertOptions);

// 創建轉換文檔請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
// 完畢
echo "Document converted successfully: ", $response[0]->getUrl();
帶水印的 Excel 到 PDF 轉換

帶水印的 Excel 到 PDF 轉換。

不使用雲存儲將 Excel 轉換為 PDF

我們可以按照以下步驟在不使用雲存儲的情況下將 Excel 轉換為 PDF:

  • 首先,創建 ConvertApi 的實例。
  • 接下來,使用目標格式和輸入文件路徑作為參數創建 ConvertDocumentDirectRequest。
  • 最後,通過調用 convertDocumentDirect() 方法進行轉換。

以下代碼示例展示瞭如何在不使用雲存儲的情況下將 Excel 電子表格轉換為 PDF 文檔。我們在請求正文中傳遞輸入文件,並在 API 響應中接收輸出文件。

// 此代碼示例演示如何在不使用雲存儲的情況下將 Excel 轉換為 PDF。
// 初始化 API 實例
$apiInstance = new GroupDocs\Conversion\轉變Api($configuration);

// 輸入文件路徑
$filePath = "C:\\Files\\Conversion\\sample.xlsx";

// 準備轉換文檔直接請求
$request = new GroupDocs\Conversion\Model\Requests\轉變DocumentDirectRequest("pdf", $filePath);

// 轉變
$result = $apiInstance->convertDocumentDirect($request);

// 完畢
echo "Document converted: " . $result->getSize();

在線試用

請試用以下免費的在線 XLSX 到 PDF 轉換工具,它是使用上述 API 開發的。 https://products.groupdocs.app/conversion/xlsx-to-pdf

結論

在本文中,我們學習瞭如何:

  • 使用 PHP 將 Excel 轉換為 PDF;
  • 在 PHP 中將特定的 Excel 電子表格轉換為 PDF;
  • 為轉換後的 PDF 文檔添加水印;
  • 不使用雲存儲進行轉換;
  • 上傳XLSX文件到雲端;
  • 從雲端下載 PDF 文件。

此外,您可以使用 文檔 了解有關 GroupDocs.Conversion Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看