使用iTextSharp从SharePoint库读取PDF文件

使用iTextSharp从SharePoint库读取PDF文件,pdf,sharepoint,visual-studio-2013,itextsharp,Pdf,Sharepoint,Visual Studio 2013,Itextsharp,我需要阅读SharePoint 2013库中的PDF 我能从本地文件夹中阅读PDF,但不能从图书馆中阅读 具体来说,我需要在PDF中搜索一些关键字,然后根据条件将文件从当前库移动到另一个SharePoint库 我还发现我从下面的代码中得到一个错误: PdfReader pdfReader = new PdfReader("http://mysharepointsite.com/MyDocumentLibrary/MyFile.pdf"); 错误是“远程服务器返回错误:(401)未经授权。” 任

我需要阅读SharePoint 2013库中的PDF

我能从本地文件夹中阅读PDF,但不能从图书馆中阅读

具体来说,我需要在PDF中搜索一些关键字,然后根据条件将文件从当前库移动到另一个SharePoint库

我还发现我从下面的代码中得到一个错误:

PdfReader pdfReader = new PdfReader("http://mysharepointsite.com/MyDocumentLibrary/MyFile.pdf");
错误是“远程服务器返回错误:(401)未经授权。”

任何帮助都将不胜感激


谢谢

当使用URL实例化
PdfReader
时,它使用
Credentials
设置为的对象,相关行()如下所示:

WebRequest wr = WebRequest.Create(url);
wr.Credentials = CredentialCache.DefaultCredentials;
Stream isp = wr.GetResponse().GetResponseStream();
如果要按原样使用
PdfReader
,则需要操作
CredentialCache.DefaultCredentials
。但是,这是一个只读属性,因此您可能需要实际设置IIS以模拟当前登录的用户

另一种选择是不使用
url
方法,而是编写自己的代码,直接访问文件系统或使用自己的身份验证规则下载文件,并将该PDF交付给
PdfReader
构造函数


最终,这不是一个iTextSharp问题,而是一个IIS/SharePoint/.Net问题。为了解决更多问题,我们需要知道这段代码在什么上下文中运行。它是web服务器还是桌面应用程序?应用程序的上下文是否具有与SharePoint对话的权限?

这是SharePoint网站页面中的可视web部件。上下文具有与SharePoint对话的权限。在同一个页面上,我有一个asp:FileUpload控件,可以将本地文件上载到我试图读取文件的库中。我对.Net和iTextSharp了解很多,但我的SharePoint知识几乎不存在。上载文件时,服务器是否将其保存到文件系统,或者服务器是否发出额外的HTTP请求以要求SharePoint存储该文件?我相信它会发出额外的SharePoint请求希望SharePoint人员之一能够帮助您。否则,如果无论您做什么,它都能够将文件保存到HTTP端点,那么我假设它也能够从HTTP端点读取文件。如果可能的话,我会尝试这样做,然后将文件的字节传递到PdfReader中。一些API允许传入可选的
ICredentials
对象,该对象在提供时用作Web请求的凭据(
WebRequest.Credentials
)。但显然,这必须在iTextSharp库源代码中完成。