我们广泛使用 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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。