C# 获取嵌入的pdf文件
我浏览了论坛,发现了许多看似相关的问题,但迄今为止没有任何帮助。我想能够从各种网站上获得精选的PDF。下面是一个片段,我正在成功地将其用于我感兴趣的大多数文档C# 获取嵌入的pdf文件,c#,pdf,stream,C#,Pdf,Stream,我浏览了论坛,发现了许多看似相关的问题,但迄今为止没有任何帮助。我想能够从各种网站上获得精选的PDF。下面是一个片段,我正在成功地将其用于我感兴趣的大多数文档 if (!String.IsNullOrEmpty(filePaths[1])) { var myRequest = (HttpWebRequest)WebRequest.Create(filePaths[1]); myRequest.Method = "GET"; WebResponse myRespons
if (!String.IsNullOrEmpty(filePaths[1]))
{
var myRequest = (HttpWebRequest)WebRequest.Create(filePaths[1]);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
var sr = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
var fileBytes = sr.ReadToEnd();
using (var sw = new StreamWriter("<localfilepath/name")
{
sw.Write(fileBytes);
}
}
我得到了一个文件,但它说它被破坏了。此外,使用UTF8使文件大小比我访问站点时得到的文件大。如果我使用Encoding.ASCII,文件大小是正确的,但仍然会得到损坏的文件错误。我可以通过使用记事本打开文件来查看文件中的英文文本,所以我不确定到底是什么内容被破坏了
任何可以提供的帮助都将不胜感激,我已经在这方面做了很长时间了 您正在使用StreamReader(即用于读取文本数据的类)来读取PDF(即二进制数据)。这几乎肯定会损坏数据。不过,我对c语言不太了解,所以不知道要使用哪些类。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = @"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0";
request.ContentType = "application/x-unknown";
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
var sr2 = new StreamReader(stream, Encoding.UTF8);//.ASCII);
var srt = sr2.ReadToEnd();
var a = srt.Length;
using (var sw = new StreamWriter("WebDataTestdocs/testpdf.pdf"))
{
sw.Write(srt);
}
}
}