我正在尝试从Windows Phone 8.1应用程序中的localStorage中存储的PDF中获取文本,但我总是得到一个FileNotFoundException。
为了解释整个故事,我从在线资源中获取PDF,我将其存储到名称与用户名相同的文件夹(用户名是电子邮件地址,但我也试过没有@符号)然后我想从PDF文件中获取一些文本。我使用iTextSharp并按照示例,但不能成功。当我将PDF发送到启动器时,可以使用Acrobat Reader等其他应用程序成功打开。
我的功能如下。我首先发送 PDF对象,其中包含一个名为路径的属性,并将其存储到特定于用户用户名的文件夹中。 然后我将pdf作为 StorageFile 项目。当我创建 PDFReader 调用构造函数时,我得到一个FileNotFoundException。有人知道或可以猜出可能是什么问题吗? iTextSharp是否与Windows Phone 8.1兼容?
internal async Task<bool> OpenPdfFromDownloadedCollections(PDF pdfToOpen, string username)
{
try
{
StorageFolder folder = ApplicationData.Current.LocalFolder;
var pdfFolder = await folder.GetFolderAsync(username + "PDFs");
var pdf = await pdfFolder.GetFileAsync(Object.Path);
StringBuilder text = new StringBuilder();
using (PdfReader reader = new PdfReader(pdf.Path))
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
string thePage = PdfTextExtractor.GetTextFromPage(reader, i, its);
string[] theLines = thePage.Split('\n');
foreach (var theLine in theLines)
{
text.AppendLine(theLine);
}
}
}
return true;
}
catch (Exception)
{
return false;
}
}
答案 0 :(得分:0)
var pdf = await pdfFolder.GetFileAsync(Object.Path);
在这行代码中,您应该只传递文件名,但是您将整个Path作为参数。由于pdfFolder目前代表路径。