从 URL 中读取 PDF 文件并转换为字节数组

10
在一个XML的WebResponse中,我获得了一个URL标签,其链接到一个PDF文件。URL值的示例为:https://www.member-data.com/files/hb/c8955fc4d6160ec0fd87f4879c6496d3.pdf)。我需要将这个PDF转换为字节数组,在C#中该怎么做?
4个回答

26
你可以使用WebClient.DownloadData函数,其默认返回一个字节数组,例如:
byte[] bytes = myClient.DownloadData("https://www.member-data.com/files/hb/c8955fc4d6160ec0fd87f4879c6496d3.pdf");

此外,这假定您想要将实际文件存储为字节数组,而不是PDF的内容(文本)。 这是个完全不同的问题。


“which has a default return value of a byte array”. 如果这是默认值,那么这个方法是否有更多可能的返回类型? - svick
是的,我只想要PDF文件的内容。 - user228777
这个PDF文件包含图片,我想将它们转换成字节数组。 - user228777

16

0

WebClient已经过时,请使用HttpClient代替:

string url = "requested/api/url/endpoint"

HttpClient client = new();
client.GetByteArrayAsync(url);

GetByteArrayAsync是可等待的,所以您的方法应该是一个异步任务:
internal async Task<byte[]?> ReadFile()
{
   string url = "requested/api/url/endpoint"

   using HttpClient client = new();
   return client.GetByteArrayAsync(url);
}

别忘了处理掉 HttpClient。

-2

要将PDF转换为字节数组,请使用System.IO命名空间中的静态方法ReadAllBytes。


1
这个方法是属于哪个类的?如果你指的是File.ReadAllBytes(),那么它并不适用于从URL下载文件。 - svick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接