【问题标题】:how to display pdf document in aspx page using web control?如何使用 web 控件在 aspx 页面中显示 pdf 文档?
【发布时间】:2013-03-29 12:18:01
【问题描述】:

我创建了一个 Web 应用程序,用户可以通过阅读 PDF 文档来完成他的课程。为此,我需要在新的 aspx 页面中打开该 PDF 文件。

是否有任何控件可以打开 PDF?或者有没有其他方法可以打开PDF?

如果你知道请帮助我。

感谢和问候, k.kavya

【问题讨论】:

  • 要打开 pdf,您需要创建一个锚标记,其目标为 _new,url 为您的相对文件路径。

标签: c# asp.net


【解决方案1】:

你可以试试这个

private void ReadPdfFile()
        {
            string path = @"C:\Swift3D.pdf";
            WebClient client = new WebClient();
            Byte[] buffer =  client.DownloadData(path);



     if (buffer != null)
        {
            Response.ContentType = "application/pdf"; 
            Response.AddHeader("content-length",buffer.Length.ToString()); 
            Response.BinaryWrite(buffer); 
        }

    }

您可以在..找到更多信息 http://geekswithblogs.net/azamsharp/archive/2005/09/18/54294.aspx


现在你的要求是你基本上想阅读一个 pdf 文件 你可以使用一个好的库,比如 iTextSharp。 http://sourceforge.net/projects/itextsharp/

然后用它把pdf中的数据提取成字符串

public string ReadPdfFile(string fileName)
{
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}

然后将该字符串显示到您的网页中...... 现在应该不难了。。 希望对您有所帮助。

【讨论】:

  • 感谢您的回复.. 但我需要在 aspx 页面本身中显示 pdf 的内容
  • 虽然 .NET 本身不支持 Pdf,但您仍然可以通过使用 iTextPdf 等外部库来实现这一点,请参阅我的更新答案以了解如何执行此操作..
  • 我需要以页面方式打开该 pdf.. prev 和 Next 选项应该在那里.. 我们需要跟踪页码,直到用户完成课程的页面...请帮助我这样做..我尝试了可能的方法,但无法成功...
  • 您实际上要问的是一个项目本身。虽然我会尝试为您编写所有代码,但无法在 stackoverflow 上发布整个项目。
  • 所以如果您想让我为您编写所有代码,您需要告诉我有关您项目的详细信息,我假设您来自海得拉巴。
【解决方案2】:

这种行为由浏览器本身处理,您只需将 pdf doc 刷新到浏览器(如 GeekyCoder 建议的那样),然后取决于浏览器,您将看到文档或将显示另存为对话框。

没有可以显示 pdf 的本机控件。如果您想确保 pdf 始终显示在页面上,您需要自己创建控件(或者搜索免费/付费自定义控件)。

【讨论】:

    【解决方案3】:

    在浏览器中查看 PDF 文件(无需下载)需要客户端浏览器的插件。例如,谷歌 Chrome 有一个内置的 PDF 查看器,可以直接打开文件,而 IE 和 Firefox 则需要您安装插件(Adobe Reader 附带的插件)。

    还有另外两种方法:

    将文件转换为 HTML、图像或任何其他可以在浏览器中直接查看的格式。这种转换可以使用服务器端(用 PHP、Python、ASP 或任何语言编写)即时进行,或者您可以将所有文件预先转换为可读文件。

    另一种最好的方法是使用基于 Flash 的 PDF 查看器(例如http://flexpaper.devaldi.com/)。这很容易、灵活并且不需要编写服务器端代码。许多文档共享网站都使用这种方法(例如http://www.scribd.com/http://www.slideshare.net/http://www.docstoc.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多