【问题标题】:Use a System.Drawing.Printing.PrintDocument to generate a PDF in memory使用 System.Drawing.Printing.PrintDocument 在内存中生成 PDF
【发布时间】:2011-01-01 09:38:55
【问题描述】:

有谁知道以下是否可行,如果可以,最好的免费方式是什么?

我正在我当前正在处理的项目中生成一个 PrintDocument 并显示一个打印对话框,以便用户可以选择他们想要使用的打印机等。当前是一个 Windows 窗体应用程序,如果用户想要打印到一个 PDF,他们可以选择打印到 CutePDF 或类似的东西。

但是,我现在在应用程序上放置了一个 ASP.Net Web 前端,并希望使用相同的代码来生成 PrintDocument,但希望将其动态打印到 PDF 并通过格式的响应流提供它PDF 下载。

所以我的问题是....如何使用当前的 PrintDocument 并从中生成内存中的 PDF??

谢谢

【问题讨论】:

    标签: c# asp.net pdf


    【解决方案1】:

    可以重复使用 PrintDocument 的 System.Drawing 代码来使用 ABCpdf .NET 生成 PDF 文档。见System.Drawing example...

    【讨论】:

      【解决方案2】:

      您必须使用第 3 方组件才能生成 PDF。以下文章有一些此类组件的链接:Generating PDF Files from .Net

      【讨论】:

        【解决方案3】:

        如果您认为要在表单应用程序和 ASP.NET 应用程序中运行处理打印机的“相同代码”,那么您将陷入困境。

        不过,您可能很幸运,因为 PDFsharp + MigraDoc 似乎可以为您做到这一点。

        【讨论】:

          【解决方案4】:

          我想您会发现没有任何工具可以将 PrintDocument 作为输入并将 PDF 作为输出呈现。做你想做的唯一方法是将 PrintDocument “打印”到将生成 PDF 的“PDF 打印机驱动程序”。基本上是一个虚拟打印机,它将生成 PDF 而不是打印实际输出。为此,市场上有大量的产品。比较便宜又被广泛使用的一对如下:

          【讨论】:

            【解决方案5】:

            你真的应该看看 iTextSharp(在前面推荐的 iText.NET 页面上提到过)

            http://itextsharp.sourceforge.net/

            PrintDocument 适用于 Windows 窗体应用程序,但在 SilverLight 中即将推出,请观看此视频...http://silverlight.net/learn/videos/all/printing-api-basics/

            如果您希望继续使用 PrintDocument 和 Web 应用程序,我认为 SilverLight 4(现在是测试版)是唯一的方法,或者您必须在本地安装一个轻量级 Windows 窗体应用程序可能使用网络服务的最终用户。

            iTextSharp 是在 Internet 上使用 .NET 生成 PDF 的绝佳工具。我强烈推荐它;我在 Java 中使用过 iText……过去几年一直在使用 iTextSharp。

            【讨论】:

              【解决方案6】:

              iText 有几个端口用于 .NET(一个非常流行的 Java 开源 PDF 库)。

              http://www.ujihara.jp/iTextdotNET/en/

              【讨论】:

                猜你喜欢
                • 2014-04-24
                • 2012-02-28
                • 1970-01-01
                • 1970-01-01
                • 2011-01-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多