我們廣泛使用 Excel 電子表格 來維護髮票、分類賬、庫存、賬戶、計算數據和其他報告。然而,PDF 是最流行的共享和打印文檔格式,不會丟失格式。在某些情況下,我們可能需要將 Excel 轉換為 PDF,以便以可移植的形式共享 Excel 數據。我們可以在雲端以編程方式輕鬆地將 Excel 電子表格轉換為 PDF 文檔。在本文中,我們將學習如何使用 PHP 將 Excel 轉換為 PDF。
本文應涵蓋以下主題:
- Excel 到 PDF 轉換 REST API 和 PHP SDK
- 使用 PHP 中的 REST API 將 Excel 轉換為 PDF
- 在 PHP 中將特定的 Excel 電子表格轉換為 PDF
- 帶水印的 Excel 到 PDF 轉換
- 不使用雲存儲將 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 文檔:
- 上傳XLSX文件到雲端
- 將 Excel 轉換為 PDF
- 下載轉換後的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 文檔:
- 首先,創建一個 ConvertApi 的實例。
- 接下來,初始化 ConvertSettings 實例並設置上傳的 XLSX 文件路徑。
- 然後,將“pdf”分配給格式並提供輸出文件路徑。
- 接下來,設置各種 SpreadsheetLoadOptions,例如 setOnePagePerSheet 等。
- 可選地,設置各種 PdfConvertOptions,例如 setCenterWindow、setMarginTop、setMarginLeft 等。
- 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
- 最後,通過調用 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();
下載轉換後的文件
上面的代碼示例會將轉換後的 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 文檔:
- 首先,創建一個 ConvertApi 的實例。
- 接下來,初始化 ConvertSettings 實例。
- 然後,設置上傳的 XLSX 文件路徑。
- 還要為格式分配“pdf”並提供輸出文件路徑。
- 接下來,初始化 PdfConvertOptions 對象
- 然後,在以逗號分隔的數組中提供特定的工作表索引以進行轉換。
- 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
- 最後,通過調用 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();
我們還可以按照前面提到的步驟將一系列電子表格從 Excel 轉換為 PDF 文件。但是,我們只需要提及如下所示的工作表範圍:
$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
$convertOptions->setFromPage(2);
$convertOptions->setPagesCount(4);
帶水印的 Excel 到 PDF 轉換
我們可以按照以下步驟將 Excel 電子表格轉換為 PDF 文檔並為轉換後的文檔添加水印:
- 首先,創建一個 ConvertApi 的實例。
- 接下來,初始化 ConvertSettings 實例。
- 然後,設置上傳的 XLSX 文件路徑。
- 還要為格式分配“pdf”並提供輸出文件路徑。
- 接下來,初始化 WatermarkOptions 對象並設置 Watermark Text、Color、Width、Height 等。
- 然後,定義 PdfConvertOptions 並分配 WatermarkOptions。
- 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
- 最後,通過調用 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:
- 首先,創建 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。