使用 Node.js 将 Word 文档转换为 PDF

PDF 是共享重要文档的首选格式,以 PDF 格式共享 Word 文档是一种常见的做法。尽管 Microsoft Office 提供了将 Word 转换为 PDF 的内置功能,但您可能需要以编程方式将 Word 文档(DOC 或 DOCX)转换为 PDF。作为 Node.js 开发人员,您可以在云端的 Node.js 应用程序中轻松地将 Word 文档转换为 PDF 文件。在本文中,您将学习如何使用 Node.js 中的 REST API 将 Word 文档转换为 PDF。

本文应涵盖以下主题:

DOCX 到 PDF 转换 REST API 和 Node.js SDK

为了将 DOCX 转换为 PDF,我将使用 GroupDocs.Conversion Cloud 的 Node.js SDK API。它是一个独立于平台的文档和图像转换解决方案,不依赖于任何工具或软件。它使您能够快速可靠地将任何支持的文件格式 的图像和文档转换为您需要的任何格式。您可以轻松地在 Word、PowerPoint, Excel、PDF、HTML、CAD、光栅图像等 50 多种文档和图像之间进行转换。

您可以在控制台中使用以下命令将 GroupDocs.Conversion Cloud 安装到您的 Node.js 项目:

npm install groupdocs-conversion-cloud

在开始执行步骤和可用代码示例之前,请从 dashboard 获取您的 Client ID 和 Client Secret。获得 ID 和密码后,请添加如下所示的代码:

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const config = new groupdocs_conversion_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";

在 Node.js 中使用 REST API 将 Word 文档转换为 PDF

您可以按照以下简单步骤在云端以编程方式将 Word 文档转换为 PDF:

  1. 上传DOCX文件到云端
  2. 使用 Node.js 将 DOCX 转换为 PDF
  3. 下载转换后的PDF文件

上传 DOCX 文件

首先,使用以下代码示例将 DOCX 文件上传到云端:

// 从本地/光盘打开 IOStream 中的文件。
var resourcesFolder = 'C:\\Files\\sample.docx';
// 读取文件
fs.readFile(resourcesFolder, (err, fileStream) => {
  // 构建FileApi
  var fileApi = groupdocs_conversion_cloud.FileApi.fromConfig(config);
  // 创建上传文件请求
  var request = new groupdocs_conversion_cloud.UploadFileRequest("sample.docx", fileStream, myStorage);
  // 上传文件
  fileApi.uploadFile(request);
});

因此,上传的 DOCX 文件将在云端仪表板的 文件部分 中可用。

使用 Node.js 将 DOCX 转换为 PDF

您可以按照下面提到的步骤以编程方式轻松地将 DOCX 转换为 PDF 文档:

  • 创建 ConvertApi 的实例
  • 创建 ConvertSettings 的实例
  • 提供输入 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 使用 ConvertSettings 创建 ConvertDocumentRequest
  • 通过使用 ConvertDocumentRequest 调用 convertDocument() 方法进行转换

以下代码示例展示了如何在 Node.js 中使用 REST API 将 DOCX 转换为 PDF。

// 初始化接口
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 定义转换设置
let settings = new groupdocs_conversion_cloud.ConvertSettings();
settings.filePath = "sample.docx";
settings.format = "pdf";
settings.outputPath = "sample.pdf";

// 创建转换文档请求
let request = new groupdocs_conversion_cloud.ConvertDocumentRequest(settings);

// 转换文档
let result = await convertApi.convertDocument(request);
console.log("Document converted successfully: " + result[0].url);
在 Node.js 中使用 REST API 将 Word 文档转换为 PDF

在 Node.js 中使用 REST API 将 Word 文档转换为 PDF

下载转换后的文件

上面的代码示例会将转换后的 PDF 文件保存在云端。您可以使用以下代码示例下载它:

// 构建FileApi
var fileApi = groupdocs_conversion_cloud.FileApi.fromConfig(config);

// 创建下载文件请求
let request = new groupdocs_conversion_cloud.DownloadFileRequest("sample.pdf", myStorage);

// 下载文件
let response = await fileApi.downloadFile(request);

// 保存在你的工作目录
fs.writeFile("C:\\Files\\sample.pdf", response, "binary", function (err) { });

使用高级选项将 Word 转换为 PDF

您可以按照以下步骤使用一些高级设置将 Word 文档转换为 PDF 文件:

  • 创建 ConvertApi 的实例
  • 创建 ConvertSettings 的实例
  • 提供 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 创建 DocxLoadOptions 的实例
  • 可选择设置各种加载选项,例如 hideComments、hideWordTrackedChanges 等。
  • 创建 PdfConvertOptions 的实例
  • 可选择设置各种转换选项,例如 displayDocTitle、边距(顶部、左侧、右侧、底部)等。
  • 使用 ConvertSettings 创建 ConvertDocumentRequest
  • 通过使用 ConvertDocumentRequest 调用 convertDocument() 方法进行转换

以下代码示例显示如何使用高级转换选项将 Word 文档转换为 PDF 文档。

// 接口初始化
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 定义转换设置
var settings = new groupdocs_conversion_cloud.ConvertSettings();
settings.storageName = myStorage;
settings.filePath = "sample.docx";
settings.format = "pdf";

// 定义 DOCX 加载选项
var loadOptions = new groupdocs_conversion_cloud.DocxLoadOptions();
loadOptions.password = "password";			// password
loadOptions.hideComments = true;			// hide comments
loadOptions.hideWordTrackedChanges = true;	// hide track changes

settings.loadOptions = loadOptions;

// 定义 PDF 转换选项
let convertOptions = new groupdocs_conversion_cloud.PdfConvertOptions();
convertOptions.centerWindow = true;		  // set position of the document's window. Default: false.
convertOptions.displayDocTitle = true;	// display document title. Default: false
convertOptions.marginTop = 5;			      // top margin
convertOptions.marginLeft = 5;			    // left margin
convertOptions.marginRight = 5;			    // right margin
convertOptions.marginBottom = 5;			  // bottom margin

settings.convertOptions = convertOptions;
settings.outputPath = "converted_with_options.pdf";

// 创建转换文档请求
var request = new groupdocs_conversion_cloud.ConvertDocumentRequest(settings);

// 转换文档
convertApi.convertDocument(request);

使用 Node.js 将 Word 转换为带水印的 PDF

您可以按照以下步骤以编程方式将 Word 文档转换为 PDF 文档并向转换后的文档添加水印:

  • 创建 ConvertApi 的实例
  • 创建 ConvertSettings 的实例
  • 提供输入 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 创建 WatermarkOptions 的实例
  • 设置水印文字、颜色、宽度、高度等。
  • 定义 PdfConvertOptions 并分配 WatermarkOptions
  • 使用 ConvertSettings 创建 ConvertDocumentRequest
  • 通过使用 ConvertDocumentRequest 调用 convertDocument() 方法进行转换

下面的代码示例展示了如何使用 Node.js 中的 REST API 将 Word 文档转换为 PDF 文档并向转换后的 PDF 文档添加水印。请按照前面提到的步骤上传和下载文件。

// 接口初始化
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 定义转换设置
let settings = new groupdocs_conversion_cloud.ConvertSettings();
settings.filePath = "sample.docx";
settings.format = "pdf";
settings.outputPath = "converted_with_watermark.pdf";

// 定义水印选项
let watermark = new groupdocs_conversion_cloud.WatermarkOptions();
watermark.text = "CONFIDENTIAL";
watermark.bold = true;
watermark.fontSize = 54;
watermark.color = "Gray";
watermark.background = false;
watermark.rotationAngle = 30;
watermark.left = 120;
watermark.top = 400;

// 定义 pdf 转换选项
let convertOptions = new groupdocs_conversion_cloud.PdfConvertOptions();
convertOptions.watermarkOptions = watermark;

settings.convertOptions = convertOptions

// 定义转换文档请求
let request = new groupdocs_conversion_cloud.ConvertDocumentRequest(settings);

// 转换文档
let result = await convertApi.convertDocument(request);
console.log("Document converted successfully: " + result[0].url);
使用 Node.js 将 Word 转换为带水印的 PDF

使用 Node.js 将 Word 转换为带水印的 PDF

不使用云存储的 DOCX 到 PDF 转换

您可以在不使用云存储的情况下将 Word 文档转换为 PDF,方法是将其传递到请求正文中并在 API 响应中接收输出文件。请按照以下步骤在不使用云存储的情况下将 DOCX 转换为 PDF。

  • 创建 ConvertApi 的实例
  • 从本地路径读取输入 DOCX 文件
  • 创建 ConvertDocumentDirectRequest
  • 提供目标格式为“pdf”和输入文件路径作为输入参数
  • 使用 ConvertDocumentDirectRequest 调用 convertDocumentDirect() 方法获取结果
  • 使用 FileStream.writeFile() 方法将输出文件保存到本地路径

以下代码示例展示了如何在不使用云存储的情况下将 Word 文档转换为 PDF。

// 接口初始化
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 读取输入文件
let file = fs.readFileSync('C:\\Files\\sample.docx');

// 创建转换请求
let request = new groupdocs_conversion_cloud.ConvertDocumentDirectRequest("pdf", file);

// 转换文档
let result = await convertApi.convertDocumentDirect(request);

// 写入输出文件
fs.writeFile("C:\\Files\\sample_direct.pdf", result, "binary", function (err) { });
console.log("Document converted: " + result.length);

在 Node.js 中将页面范围从 DOCX 转换为 PDF

您可以按照以下提到的步骤以编程方式轻松地将一系列页面从 Word 文档转换为 PDF 文件:

  • 创建 ConvertApi 的实例
  • 创建 ConvertSettings 的实例
  • 提供输入 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 创建 PdfConvertOptions 的实例
  • 提供要转换的页码范围,从起始页码和要转换的总页数
  • 将 PdfConvertOptions 分配给 ConvertSettings
  • 使用 ConvertSettings 创建 ConvertDocumentRequest
  • 通过使用 ConvertDocumentRequest 调用 convertDocument() 方法进行转换

以下代码示例显示了如何使用 Node.js 中的 REST API 将一系列页面从 DOCX 转换为 PDF。请按照前面提到的步骤上传和下载文件。

// 接口初始化
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 定义转换设置
let settings = new groupdocs_conversion_cloud.ConvertSettings();
settings.filePath = "sample.docx";
settings.format = "pdf";

// 定义 PDF 转换选项
let convertOptions = new groupdocs_conversion_cloud.PdfConvertOptions();
convertOptions.fromPage = 1;    // start page number
convertOptions.pagesCount = 2;  // total pages to convert

settings.convertOptions = convertOptions
settings.outputPath = "two-pages.pdf";

// 创建转换请求
let request = new groupdocs_conversion_cloud.ConvertDocumentRequest(settings);

// 转换文档
let result = await convertApi.convertDocument(request);
console.log("Document converted successfully: " + result[0].url);

在 Node.js 中将 DOCX 的特定页面转换为 PDF

您可以按照以下步骤以编程方式将 Word 文档的特定页面转换为 PDF 文件:

  • 创建 ConvertApi 的实例
  • 创建 ConvertSettings 的实例
  • 提供输入 DOCX 文件路径
  • 将“pdf”分配给格式
  • 提供输出文件路径
  • 创建 PdfConvertOptions 的实例
  • 提供要转换的特定页码
  • 将 PdfConvertOptions 分配给 ConvertSettings
  • 使用 ConvertSettings 创建 ConvertDocumentRequest
  • 通过使用 ConvertDocumentRequest 调用 convertDocument() 方法进行转换

以下代码示例展示了如何使用 Node.js 中的 REST API 将 Word 文档的特定页面转换为 PDF。请按照前面提到的步骤上传和下载文件。

// 接口初始化
let convertApi = groupdocs_conversion_cloud.ConvertApi.fromKeys(clientId, clientSecret);

// 定义转换设置
let settings = new groupdocs_conversion_cloud.ConvertSettings();
settings.filePath = "sample.docx";
settings.format = "pdf";

// 定义转换选项
let convertOptions = new groupdocs_conversion_cloud.PdfConvertOptions();
convertOptions.pages = [1,2]; // page numbers to convert

settings.convertOptions = convertOptions
settings.outputPath = "specific_pages.pdf";

// 转换文档请求
let request = new groupdocs_conversion_cloud.ConvertDocumentRequest(settings);

// 转换文档
let result = await convertApi.convertDocument(request);
console.log("Document converted successfully: " + result[0].url);

在线试用

请试用以下免费的在线 DOCX 到 PDF 转换工具,它是使用上述 API 开发的。 https://products.groupdocs.app/conversion/docx-to-pdf

结论

在本文中,您了解了如何将 Word 文档转换为云端的 PDF 文件。您还学习了如何使用 Node.js 将 Word 文档的特定页面转换为 PDF。此外,您还学习了如何以编程方式将一系列页面从 DOCX 转换为 PDF。此外,您还学习了如何为转换后的 PDF 文档添加水印。本文还介绍了如何以编程方式将 DOCX 文件上传到云端,然后从云端下载转换后的 PDF 文件。您可以使用 文档 了解有关 GroupDocs.Conversion Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看