0

我正在尝试从存储在 Windows Phone 8.1 应用程序的 localStorage 中的 PDF 中获取文本,但我总是收到 FileNotFoundException。

为了解释整个故事,我从在线资源获得了一个 PDF,我将它存储到一个名称与用户名相同的文件夹中(用户名是一个电子邮件地址,但我也尝试过不带 @ 符号),然后我想从 PDF 文件中获取一些文本。我使用 iTextSharp 并按照示例进行操作,但无法成功。当我将 PDF 发送到启动器时,使用 Acrobat Reader 等其他应用程序成功打开。

我的功能如下。我首先发送一个PDF Object,它有一个名为Path的属性,它存储在特定于用户用户名的文件夹中。然后我将 pdf 作为StorageFile Item 获取。当我创建调用构造函数的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;
        }
    }
4

1 回答 1

0
var pdf = await pdfFolder.GetFileAsync(Object.Path);

在这行代码中,您应该只传递文件名,但您将整个路径作为参数。由于 pdfFolder 当前代表路径。

于 2015-07-24T12:37:11.223 回答