在 Windows Azure 中转换文档
Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。
Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
Windows Azure 上的 Aspose.Words 提供了加载、转换和保存文档的功能。为此,您可以创建一个应用程序,该应用程序:
- 实现一个简单的 ASP.NET 表单,使用户能够加载文档并指定所需的输出格式。
- 调用 Aspose.Words 来转换文档并将其发送回浏览器。
本文中描述的应用程序作为WebRole实现,可以在开发结构中运行(在开发人员的机器上)或部署到Windows Azure。此应用程序是Aspose.Words如何在云中工作的可能示例之一。
先决条件
- Active Microsoft Azure 订阅。如果您没有免费帐户,请在开始之前创建一个免费帐户。
- 安装了 Azure 开发的 Visual Studio 2019 或 Visual Studio 2017。
转换文档应用程序
本节讨论一个不使用高级Aspose.Words功能或Windows Azure平台的复杂服务的基本项目。
该项目演示了如何使用Aspose.Words轻松构建在云中运行的应用程序。
创建 Web 角色项目
要创建应用程序,您需要执行以下步骤:
- 在 Visual Studio 中创建新的云服务项目。
- 选择云服务以具有一个 WebRole 项目。
- 将 NuGet 引用添加到 Aspose.Words。
- 将“文件上载”控件添加到“默认.aspx”窗体,使用户能够选择要上载的文件。
- 将下拉列表控件添加到 Default.aspx 窗体,使用户能够选择输出格式。
- 为其添加“提交”按钮和 Click 事件处理程序。
- 修改 ServiceDefinition.csdef 配置文件,以便应用程序可以在完全信任下在 Windows Azure 中运行。建议您启用 NativeCodeExecution = “true”,以避免在使用 Aspose.Words 将文档转换为 PDF 或 XPS 时可能出现的任何权限问题。
使用 Aspose.Words 转换文档的实际代码仅包含两行,这些行创建新的 Document 对象以加载文档,然后使用所需格式调用 Save 方法。下面的代码示例演示如何在 Windows Azure 中转换文档:
using Aspose.Words; using Aspose.Words.Saving; using System.Web; using System; using System.IO; namespace WebRole { /// <summary> /// This demo shows how to use Aspose.Words for .NET inside a WebRole in a simple /// Windows Azure application. There is just one ASP.NET page that provides a user /// interface to convert a document from one format to another. /// </summary> public partial class _Default : System.Web.UI.Page { protected void SubmitButton_Click(object sender, EventArgs e) { HttpPostedFile postedFile = SrcFileUpload.PostedFile; if (postedFile.ContentLength == 0) throw new Exception("There was no document uploaded."); if (postedFile.ContentLength > 512 * 1024) throw new Exception("The uploaded document is too big. This demo limits the file size to 512Kb."); // Create a suitable file name for the converted document. string dstExtension = DstFormatDropDownList.SelectedValue; string dstFileName = Path.GetFileName(postedFile.FileName) + "_Converted." + dstExtension; SaveFormat dstFormat = FileFormatUtil.ExtensionToSaveFormat(dstExtension); // Convert the document and send to the browser. Document doc = new Document(postedFile.InputStream); doc.Save(Response, dstFileName, ContentDisposition.Inline, SaveOptions.CreateSaveOptions(dstFormat)); // Required. Otherwise DOCX cannot be opened on the client (probably not all data sent // or some extra data sent in the response). Response.End(); } static _Default() { // Uncomment this code and embed your license file as a resource in this project and this code // will find and activate the license. Aspose.Wods licensing needs to execute only once // before any Document instance is created and a static ctor is a good place. // // Aspose.Words.License l = new Aspose.Words.License(); // l.SetLicense("Aspose.Words.lic"); } } }
测试和运行 Web 角色项目
若要测试和运行示例项目,请执行以下步骤:
- 首先,检查作为简单 ASP.NET 应用程序运行的示例项目。使 WebRole 项目成为解决方案中的启动项目并运行。Visual Studio将打开一个浏览器窗口并将表单加载到其中。您可以上传示例文档并验证转换是否正常工作。
- 然后,您应该测试项目是否在计算机上的开发结构中运行良好。Development Fabric 是 Windows Azure 计算和存储服务的本地模拟。选择“云服务”项目,使其成为解决方案的“启动”项目并运行。这一次,构建应用程序可能需要更长的时间,因为Visual Studio启动了Development Fabric并将项目部署到其中。浏览器窗口将再次打开表单,您将能够测试应用程序。
- 最后,您可以在 Windows Azure 中部署和测试您的项目。为此,您需要有一个有效的 Microsoft Azure 订阅。 在 Visual Studio 中,右键单击云服务项目,然后选择“发布”。如有必要,请使用您的 Microsoft Azure 帐户登录并选择订阅。 要进行测试,请选择暂存环境,然后单击发布。之后,在 Azure 活动日志中,你将收到已部署应用程序的 URL。
下图显示了在 Microsoft Azure 云中运行的 Web 角色项目: