【问题标题】:Create PDF file thru an online text editor and save it directly to the web server filesystem ASP.NET MVC通过在线文本编辑器创建 PDF 文件并将其直接保存到 Web 服务器文件系统 ASP.NET MVC
【发布时间】:2014-11-20 07:52:10
【问题描述】:

嗨,我的问题是这可能吗? 我目前正在使用 TinyMce 和 Itextsharp 创建一个 pdf 文件,但我的问题是当我保存它时需要将其保存在不需要的客户端电脑中我只想将它直接保存到 Web 服务器文件系统供用户下载他想要的任何时候。 所以这就是我想做的。

在 tinymce 编辑器中输入文本 > 创建 pdf > 将 pdf 保存到网络服务器而不是客户端的电脑 > 用户可以随时下载 pdf。

我已经阅读了有关文件和内存流的信息,但我担心它们只会将数据保存到客户端并要求用户将其下载到电脑上。

【问题讨论】:

    标签: asp.net-mvc pdf tinymce itextsharp memorystream


    【解决方案1】:

    如果不深入技术细节,我不明白为什么这是不可能的。

    有许多内容管理系统将 HTML 编辑器集成到他们的网站中,这样人们就可以创建简单的 HTML,然后将其提交到服务器以在 CMS 中存储为 HTML。

    您需要做类似的事情:人们应该提交 HTML,然后您应该编写一个在服务器上运行的 iTextSharp 应用程序(这比在客户端上运行要容易得多)。此应用程序将创建一个 PDF,然后您可以将其存储在服务器上。 (额外提示:我会将原始 HTML 作为嵌入文件存储到 PDF 中。)

    实际上,这个演示或多或少是在做你需要的:http://demo.itextsupport.com/xmlworker/

    最终用户创建一些 HTML。该 HTML 被提交到服务器。在服务器上,iText 创建一个 PDF,但应用程序不会将其保存在其文件系统中,而是将其发送到浏览器。这只是改变输出流的问题。

    现在,您使用的是Response.OutputStream。您需要使用FileStream 将文件写入硬盘(应用服务器可以访问的文件夹),而不是这个输出流。

    【讨论】:

    • 谢谢您,先生,Filestream 击中了我内心的灯泡。我继续检查路径并意识到它一直隐藏在解决方案资源管理器中,这就是我看不到它的原因。
    • 嗯,这就是 StackOverflow 的用途 ;-)
    【解决方案2】:

    这就是你应该如何使用 iTextSharp 创建 pdf。

    string filePath = "~/Content/Pdf/Test.pdf"
    FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None);
    
    Document doc = new Document();
    PdfWriter writer = PdfWriter.GetInstance(doc, fs);
    doc.Open();
    doc.Add(new Paragraph("Test"));
    doc.Close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 2015-05-20
      相关资源
      最近更新 更多