2

我们有一个原生的、独立的 Win32 应用程序,用于生成 .PDF 文件。它是命令行驱动的,用于获取我们的一个数据文件并生成 PDF 文件。它与安装在计算机上的打印驱动程序结合使用。

我知道我们可以在 Azure 中使用用于在 .NET 中生成 PDF 文件的库,但是,我们必须支持在我们的应用程序中执行的特定类型布局,并且该逻辑尚未在服务器端。这是一个短期的欺骗,在我们从 C/C++ 移植(或重写)我们已有 20 年历史的类型布局引擎之前。这里有很多复杂的代码。

我看到我们现在可以在 Azure 中运行本机应用程序(耶)。但是,我的问题似乎是这个本机应用程序需要安装打印驱动程序。我无法找到有关在 Azure 辅助角色中安装打印驱动程序的任何信息。

我发现了这个讨论:https ://stackoverflow.com/questions/9125385/printing-to-pdf-from-azure-worker-role 。这样做的最终结果是在 Azure 上使用 PDF 库,这对我们来说并不适用。

另外,我知道每次有人想在我们的网站上预览他们的数据文件时,使用服务器启动生成 PDF 文件的过程并不是最好的方法。当用户想要在浏览器中预览我们的专有数据格式时,我们计划通过向用户显示 PDF 来作弊。这是一个项目的第一阶段,用 C# 重写我们已有 20 年历史的类型布局引擎将需要更长的时间才能完成,我们正在谈论这个(承认的 hack)作为短期(在更大的意义上)措施。

如何在 Windows Azure 辅助角色中安装打印驱动程序?可能吗?还有其他选择吗?

非常感谢。

4

2 回答 2

2

如果您可以执行命令行,静默安装 yms 提到的 Amyuni 软件,那么您可以将其作为您的工作角色的启动任务的一部分运行,可能具有提升的权限。人们使用启动任务来做各种各样的事情,他们中的许多人写过关于它的博客文章或在SO上回答有关它们的问题,但一个好的起点是官方文档

于 2012-08-01T20:56:45.763 回答
1

这可能会有所帮助:Amyuni PDF Converter是一个 PDF 打印机驱动程序,其 API 作为 COM 接口和网络公开。允许您以编程方式静默安装和卸载驱动程序的程序集。这可以通过使用应用程序中的PDFDriverInitDriverEnd方法来完成。

应用程序安装驱动程序后,您可以使用内存流作为目标打印为 PDF 并将其上传到 Microsoft Azure Blob 存储

Amyuni PDF Converter有两种安装方式:

1- 使用随包提供的安装程序。
2- 将 dll 文件复制到其相应的文件夹,然后调用方法 DriverInit。

这里解释了完整的过程: 使用 Amyuni 文档转换器的开发者版本

关于您的特定场景,如果您有一个使用 Amyuni PDF Converter 的应用程序,那么确实应该安装一个打印机驱动程序。您的应用程序可能会在每次启动时安装驱动程序并在关闭时将其删除,或者它可能仅在安装程序期间安装它。

如果您没有此应用程序的源代码,但仍有 Amyuni 提供的库的许可信息,您可以尝试构建一个小型应用程序或批处理脚本来处理安装过程。您可以联系Amyuni 支持以获取指向您正在使用的版本的最新版本的链接。

您提到您使用的是 Windows Azure VM,因此我假设您拥有虚拟系统的管理权限,并且您可以使用远程桌面连接到它并运行任何类型的应用程序。

通常的免责声明适用

于 2012-08-01T17:41:42.247 回答