Foxtable(狐表)用户栏目专家坐堂 → 关于PDF文件的处理


  共有4564人关注过本帖树形打印复制链接

主题:关于PDF文件的处理

帅哥哟,离线,有人找我吗?
ap9709130
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
关于PDF文件的处理  发帖心情 Post By:2018/4/23 13:51:00 [只看该作者]

老师

PDF文件用Acrobat Pro 可以另存为文本,也可以存为WORD. 如果用代码把PDF 能变为文本?

我试过论坛上的方法 :

Dim reader As New iTextSharp.text.pdf.PdfReader("d:\test.pdf")

Dim n As Integer = reader.NumberOfPages
Dim str As String = ""
For i As Integer = 1 To n
    Dim strategy As object = New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy()
    Dim currentText As String = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(Reader, i, strategy)
    
    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.[Default], Encoding.UTF8, Encoding.[Default].GetBytes(currentText)))
    str &= currentText
    
Next
msgbox(str)
reader.Close()


不会报错,但str 为空。 还有其它的方法吗?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 14:34:00 [只看该作者]

如果读取为空,则是你的pdf是图片,不是文本,不能读取。

 

试试使用这种方式 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117794&authorid=0&page=0&star=1

 

识别图片文字,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=108960&skin=0

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/23 14:35:00 [只看该作者]

老师,

我的PDF不是图片,用Acrobat Pro可以转变成TXT,也可以转成WORD 和 excl .都是文字。但不知道为什么,用代码读不出来?

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/23 15:23:00 [只看该作者]

老师

我在网上看到还有一个方法,

1、下载PDFBox

下载地址:http://sourceforge.net/projects/pdfbox/

2、引用动态链接库

解压缩下载的PDFBox,找到其中的Bin目录,需要在项目中添加引用的dll文件有: IKVM.GNU.Classpath.dll PDFBox-0.7.3.dll FontBox-0.1.0-dev.dll IKVM.Runtime.dll 将以上4个文件引用到项目中,在文件中需要引入以下2个命名空间: using org.pdfbox.pdmodel; using org.pdfbox.util;

3、API的使用方法看代码:

  1. using org.pdfbox.pdmodel;  
  2. using org.pdfbox.util;  
  3. public void pdf2txt(FileInfo file,FileInfo txtfile)  
  4. {  
  5.         PDDocument doc = PDDocument.load(file.FullName);  
  6.         PDFTextStripper pdfStripper = new PDFTextStripper();  
  7.         string text = pdfStripper.getText(doc);  
  8.         StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));  
  9.         swPdfChange.Write(text);  
  10.         swPdfChange.Close();  
  11. }  
using org.pdfbox.pdmodel;
using org.pdfbox.util;
public void pdf2txt(FileInfo file,FileInfo txtfile)
{
        PDDocument doc = PDDocument.load(file.FullName);
        PDFTextStripper pdfStripper = new PDFTextStripper();
        string text = pdfStripper.getText(doc);
        StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));
        swPdfChange.Write(text);
        swPdfChange.Close();
}
但本人水平有限,DLL我也下载下来了,麻烦看怎么转成FOX 代码,我看看这种方法行不行?多谢!

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/23 15:24:00 [只看该作者]

怎么传不了附件?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 15:26:00 [只看该作者]

看2楼的方法测试。

 

如果还有疑问,上传实例测试。


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/23 16:05:00 [只看该作者]

老师,
我下载你2楼的例子,运行出错:

见图片。是不是有什么DLL 没有引用。多谢!
图片点击可在新窗口打开查看此主题相关图片如下:kwi){y~cx)c2$@06(q`hi.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/23 17:07:00 [只看该作者]

老师

请看附件我要读的PDF,我下载了例子,但是用不了。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:othertaxcertificate(13).zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/23 19:04:00 [只看该作者]

2楼例子,你需要引用dll的,去看原帖;

 

pdfbox的例子,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104162&skin=0

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/4/24 10:28:00 [只看该作者]

有点甜老师

今天早上认真的试了你给我的2楼的例子.我的PDF文件在8楼. 用2楼的例子,直接弹框OK.但是D盘什么也没有?能帮我看看吗?

 回到顶部
总数 20 1 2 下一页