使用 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看