我创建了一个 Web 应用程序,用户可以通过阅读 PDF 文档来完成他的课程。为此,我需要在新的 aspx 页面中打开该 PDF 文件。
是否有任何控件可以打开 PDF?或者有没有其他方法可以打开PDF?
如果你知道请帮助我。
谢谢和问候, k.kavya
你可以试试这个
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();
}
然后将该字符串显示到您的网页中......现在应该不难......希望它有所帮助。
这种行为由浏览器本身处理,您只需将 pdf doc 刷新到浏览器(如 GeekyCoder 建议的那样),然后取决于浏览器,您将看到文档或将显示另存为对话框。
没有将显示 pdf 的本机控件。如果您想确保 pdf 始终显示在页面上,您需要自己创建控件(或者搜索免费/付费的自定义控件)。
在浏览器中查看 PDF 文件(无需下载)需要客户端浏览器的插件。例如,谷歌浏览器有一个内置的 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/)