Word 转 PDF

如何在线将 Word 转换为 PDF

MS Word 文件包括 DOCDOCXDOCMDOTXODTOTT 等,是一些用于信息存储和数据共享的流行文件格式。许多大学、政府或公共组织都以 Word 格式制作其作品,但由于格式种类繁多,这些文件中的内容布局在各种平台上查看时会受到影响。因此,一个可行的解决方案是转换为固定格式,以在任何平台上保留文档结构和保真度。

在本文中,我们将讨论使用 .NET REST API 将 Word 转换为 PDF 格式。

Word 到 PDF 转换 API

Aspose.Words Cloud 是一款出色的基于 REST 的 API,可轻松在任何平台上创建、编辑 Word 文档并将其转换为其他受支持的文件格式。根据本文的范围,我们将使用 Aspose.Words Cloud SDK for .NET 将 Word 转换为 PDF。

安装

请在命令行终端执行以下命令来安装SDK。

nuget install Aspose.Words-Cloud

为了从 NuGet 包管理器安装 SDK,请按照以下步骤操作:

  • 展开解决方案资源管理器并右键单击“包”文件夹。
  • 在搜索字段中输入 Aspose.Words-Cloud。
  • 现在在搜索结果中启用 Aspose.Words-Cloud 附近的复选框,然后单击添加包按钮。
  • 引用的SDK已添加到项目中。

我们还需要通过访问 Aspose.Cloud 仪表板 创建一个免费帐户,我们可以使用现有的 GitHub 或 Google 帐户登录,也可以创建一个新帐户。只需向下滚动到客户端凭据部分即可查看客户端 ID 和客户端密钥详细信息。

如何在 C# 中将 Word 转换为 PDF

请按照下面指定的步骤,使用 Visual Studio 中的 C# .NET 代码完成 Word 到 PDF 的转换。在这种情况下,输入的 Word 文件已在云存储中可用,并且生成的 PDF 也存储在云存储中。

  • 创建 Configuration 类的实例,该实例以客户端 ID 和客户端机密详细信息作为参数。
  • 其次,创建 WordsApi 类的实例并提供配置实例作为参数。
  • 第三,使用 UploadFileRequest(..) 方法将文件从本地系统上传到云存储。
  • 下一步是创建一个 SaveOptionsData 对象,该对象定义结果文件属性。使用此对象,我们将 SaveFormat 定义为 Pdf,将 ZipOutput 的值指定为 false,这样输出就不会出现在 .zip 存档和其他属性中。
  • 现在创建一个 SaveAsRequest 的实例,它以输入文件名和 SaveOptionsData 对象作为参数。
  • 最后,调用 WordApi 类的 SaveAs(…) 方法,该方法以 SaveAsrequest 实例作为参数。
// 从 https://dashboard.aspose.cloud/ 获取客户端凭证
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// 通过传递客户端 ID 和客户端机密详细信息来创建配置实例
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// 创建 WordsApi 对象
var wordsApi = new WordsApi(config);

// 输入Word文档
string fileName = "test_multi_pages.doc";

// 从本地系统加载文件
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName))
{
    // 将原始文档上传至云存储
    wordsApi.UploadFile(new UploadFileRequest(file, fileName, null));
}

// 创建 SaveOptionsData 对象
SaveOptionsData saveOptionsData = new SaveOptionsData()
{
    SaveFormat = "pdf",
    FileName = "myResultant.pdf",
    AllowEmbeddingPostScriptFonts = true,
    ZipOutput = false,
    UpdateLastSavedTimeProperty = true,
    UpdateSdtContent = true,
    UpdateCreatedTimeProperty = true,
    UpdateLastPrintedProperty = true
};
            
try
{
    // 通过传递输入 Word 文件和 saveOptionsData 创建 SaveAsRequest
    SaveAsRequest request = new SaveAsRequest(fileName, saveOptionsData);
    
    // 初始化 Word 到 PDF 的转换操作
    var output = wordsApi.SaveAs(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
} 
word 转 pdf 预览

图 5:- Word 到 PDF 转换预览。

上述示例使用的示例文件可以从testmultipages.doc下载。

在 C# 中将 DOC 转换为 PDF

在此场景中,我们将转换从本地存储上传的 DOC 文件,并将输出转换为 PDF 格式。生成的文件也存储在云存储中。

  • 首先,创建 Configuration 类的实例,该实例以客户端 ID 和客户端机密详细信息作为参数。
  • 其次,创建 WordsApi 类的实例并提供配置实例作为参数。
  • 第三,创建一个 ConvertDocumentRequest 类的对象,该对象以本地文件流、输出格式和结果文件名作为参数。
  • 最后调用ConvertDocument(..)方法执行转换操作。
// 从 https://dashboard.aspose.cloud/ 获取客户端凭证
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// 通过传递客户端 ID 和客户端机密详细信息来创建配置实例
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// 创建 WordsApi 对象
var wordsApi = new WordsApi(config);

// 输入word文件
string fileName = "test_multi_pages.doc";

// 结果文件的名称
string outputfile = "result.pdf";

try
{
    // 从本地存储上传word文件并指定输出格式
    ConvertDocumentRequest request = new ConvertDocumentRequest(System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName),"pdf",outputfile);
    
    // 执行转换操作
    var output = wordsApi.ConvertDocument(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

使用 C# 将 DOCX 转换为 PDF

让我们讨论一下转换云存储中可用的 DOCX 文件并将生成的 PDF 保存在云存储中的场景。在这个场景中,我们将使用 HTTP GET 请求方法。

  • 首先,创建 Configuration 类的实例,该实例以客户端 ID 和客户端机密详细信息作为参数。
  • 其次,创建 WordsApi 类的实例并提供配置实例作为参数。
  • 下一步是使用 WordsApi 的 UploadFileRequest(…) 方法将文件从本地驱动器上传到云存储。
  • 倒数第二,创建一个 GetDocumentWithFormatRequest 类的对象,该对象以 DOCX 文件名、输出格式和结果文件的名称作为参数。
  • 最后调用GetDocumentWithFormat(…)方法执行转换。
// 从 https://dashboard.aspose.cloud/ 获取客户端凭证
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// 通过传递客户端 ID 和客户端机密详细信息来创建配置实例
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// 创建 WordsApi 对象
var wordsApi = new WordsApi(config);

// 输入 docx 文件
string fileName = "file-sample_1MB.docx";

// 输出格式为 PDF
string format = "pdf";

// 结果文件名
string outputfile = "result.pdf";

// 从本地驱动器加载 DOCX 文件内容
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName))
{
    // 将原始文档上传至云存储
    wordsApi.UploadFile(new UploadFileRequest(file, fileName, null));
}

// 将文件上传至云存储            
try
{
    GetDocumentWithFormatRequest request = new GetDocumentWithFormatRequest(fileName,format,null,null,null,null,outputfile);
    wordsApi.GetDocumentWithFormat(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
} 

您可以考虑从 file-sample1MB.docxresult.pdf 下载上述示例中使用的资源文件。

docx 到 pdf 转换预览

图 6:- DOCX 到 PDF 转换预览。

使用 cURL 命令将 Word 转换为 PDF

在本节中,我们将通过 cURL 命令访问 Cloud API。因此,第一步是根据客户端 ID 和客户端密钥详细信息生成 JWT 访问令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

现在执行以下命令将文件上传到云存储。

curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/file-sample_1MB.docx" \
-H  "accept: application/json" \
-H  "Authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"fileContent":{}}

最后,使用 GetDocumentWithFormat API 执行 DOCXPDF 的转换。

curl -X GET "https://api.aspose.cloud/v4.0/words/file-sample_1MB.docx?format=pdf&outPath=myOutput.pdf" \
-H  "accept: application/octet-stream" \
-H  "Authorization: Bearer <JWT Token>

结论

我们讨论了使用 Aspose.Words Cloud 将 Word 转换为 PDF 格式的一些令人惊叹的功能。可以使用 .NET 代码或通过 cURL 命令执行转换。此外,您还可以在浏览器中通过 Swagger UI 探索 API。

请注意,SDK 的完整源代码可在 GitHub 上下载,如果您在使用 API 时遇到任何问题,请随时通过 免费产品支持论坛 与我们联系。

相关文章

我们强烈建议您访问以下链接以了解更多信息: