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

也可以看看