使用itextsharp在ftp服务器上提取pdf文件

穆纳夫瓦尔

我正在从事文件管理项目,我想从pdf中提取文本。我怎么能做到这一点。我正在使用Itextsharp在本地系统上提取pdf

这是我用于此目的的功能。路径是FTP服务器路径

 public static string ExtractTextFromPdf(string path)
    {
        using (PdfReader reader = new PdfReader(path))
        {
            StringBuilder text = new StringBuilder();

            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
                text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
            }

            return text.ToString();
        }
    } 

引发异常

'ftp:\\###\index\500199.pdf not found as file or resource.'

[###是我的ftp服务器]

克里斯·哈斯(Chris Haas)

PdfReader有一堆构造函数重载,但大多数重载依赖于RandomAccessSourceFactory将传递的任何内容转换为Stream格式。当你传递一个string在它被检查,如果它是磁盘上的一个文件,如果不检查,如果它可以被转换成Uri为一个file:/http://https://链接。这是您的第一个失败点,因为这些检查均未处理ftp协议,最终您最终遇到了对您不起作用本地资源加载器

可以尝试将其转换string为显式,Uri但实际上不起作用,或者:

//This won't work
new PdfReader(new Uri(path))

之所以不起作用,是因为iText告诉.NetCredentialCache.DefaultCredentials在加载远程资源时使用,但是FTP世界中不存在该概念。

长话短说,使用FTP时,您需要自己下载文件。根据它们的大小,您需要将它们下载到磁盘或下载字节数组。以下是后者的示例:

Byte[] bytes;
if( path.StartsWith(@"ftp://")) {
    var wc = WebRequest.Create(path);
    using (var response = wc.GetResponse()) {
        using (var responseStream = response.GetResponseStream()) {
            bytes = iTextSharp.text.io.StreamUtil.InputStreamToArray(responseStream);
        }
    }
}

然后,您可以将本地文件或字节数组传递给PdfReader构造函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用php在ftp服务器上显示文件

来自分类Dev

如何使用文件上传控制器将pdf文件上传到ftp服务器?

来自分类Dev

为什么无法提取使用apache.net.ftp从服务器下载的zip文件

来自分类Dev

c#使用FTP将本地文件上传到服务器。C#文件位于服务器上

来自分类Dev

如何在服务器上转换pdf文件并从中提取数据?

来自分类Dev

使用包装器访问Microsoft FTP服务上的文件时,“无法打开流:FTP服务器报告550”

来自分类Dev

文件未在Java的FTP服务器上上传?

来自分类Dev

无法在FTP服务器上复制文件。

来自分类Dev

文件未在Java的FTP服务器上上传?

来自分类Dev

FTP服务器上的文件上传不起作用

来自分类Dev

在 FTP 服务器上编写文件移动脚本

来自分类Dev

使用Python将数据追加到FTP服务器上的文件

来自分类Dev

使用PHP检查远程FTP服务器上的文件是否存在重复内容

来自分类Dev

使用Python和ftplib检查FTP服务器上的对象是文件还是目录

来自分类Dev

FTPS使用Shell将文件放在FTP服务器上

来自分类Dev

在PowerShell中使用WinSCP .NET程序集监视FTP服务器上的上传文件

来自分类Dev

如何使用libcurl获取ftp服务器上的文件大小?

来自分类Dev

无法使用Apache骆驼FTP删除服务器上的远程文件

来自分类Dev

使用PHP检查远程FTP服务器上的文件是否存在重复内容

来自分类Dev

无法使用FTP Java在服务器上上传.class文件

来自分类Dev

使用python在ftp服务器上显示上载特定格式的文件

来自分类Dev

使用Access VBA的FTP在服务器上创建没有数据的文件

来自分类Dev

使用Python和ftplib检查FTP服务器上的对象是文件还是目录

来自分类Dev

在Linux服务器上提取Wordpress.zip文件

来自分类Dev

使用FtpWebRequest重命名FTP服务器上的目录

来自分类Dev

使用Linux终端从FTP服务器删除文件

来自分类Dev

使用bash脚本从ftp服务器下载多个文件

来自分类Dev

使用Indy将文件上传到FTP服务器

来自分类Dev

如何使用WinSCP从FTP服务器下载特定文件?

Related 相关文章

  1. 1

    使用php在ftp服务器上显示文件

  2. 2

    如何使用文件上传控制器将pdf文件上传到ftp服务器?

  3. 3

    为什么无法提取使用apache.net.ftp从服务器下载的zip文件

  4. 4

    c#使用FTP将本地文件上传到服务器。C#文件位于服务器上

  5. 5

    如何在服务器上转换pdf文件并从中提取数据?

  6. 6

    使用包装器访问Microsoft FTP服务上的文件时,“无法打开流:FTP服务器报告550”

  7. 7

    文件未在Java的FTP服务器上上传?

  8. 8

    无法在FTP服务器上复制文件。

  9. 9

    文件未在Java的FTP服务器上上传?

  10. 10

    FTP服务器上的文件上传不起作用

  11. 11

    在 FTP 服务器上编写文件移动脚本

  12. 12

    使用Python将数据追加到FTP服务器上的文件

  13. 13

    使用PHP检查远程FTP服务器上的文件是否存在重复内容

  14. 14

    使用Python和ftplib检查FTP服务器上的对象是文件还是目录

  15. 15

    FTPS使用Shell将文件放在FTP服务器上

  16. 16

    在PowerShell中使用WinSCP .NET程序集监视FTP服务器上的上传文件

  17. 17

    如何使用libcurl获取ftp服务器上的文件大小?

  18. 18

    无法使用Apache骆驼FTP删除服务器上的远程文件

  19. 19

    使用PHP检查远程FTP服务器上的文件是否存在重复内容

  20. 20

    无法使用FTP Java在服务器上上传.class文件

  21. 21

    使用python在ftp服务器上显示上载特定格式的文件

  22. 22

    使用Access VBA的FTP在服务器上创建没有数据的文件

  23. 23

    使用Python和ftplib检查FTP服务器上的对象是文件还是目录

  24. 24

    在Linux服务器上提取Wordpress.zip文件

  25. 25

    使用FtpWebRequest重命名FTP服务器上的目录

  26. 26

    使用Linux终端从FTP服务器删除文件

  27. 27

    使用bash脚本从ftp服务器下载多个文件

  28. 28

    使用Indy将文件上传到FTP服务器

  29. 29

    如何使用WinSCP从FTP服务器下载特定文件?

热门标签

归档