Foxtable(狐表)用户栏目专家坐堂 → 请问fox能读取pdf文件的内容吗?


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

主题:请问fox能读取pdf文件的内容吗?

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
请问fox能读取pdf文件的内容吗?  发帖心情 Post By:2017/3/8 10:53:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/8 10:56:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2017/3/8 11:11:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/8 11:34:00 [只看该作者]

比较麻烦,你把你的pdf文件发上来看看。

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2017/3/8 11:43:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
  发帖心情 Post By:2017/3/8 11:45:00 [只看该作者]

我通常是叫员工先把pdf里,他想要的表格的内容,先粘贴到excel里,再粘贴到fox里的多行文本框,然后我用代码批量读取。直读PDF的话,我怕每次那些PDF表头和结尾会有奇怪不一样的地方(毕竟客人的下单系统不是我写的),导致批量读表格的功能不好用


此主题相关图片如下:1.jpg
按此在新窗口浏览图片

Dim ti As WinForm.TextBox = e.Form.Controls("TextBox_PDF")

Dim all As Integer =0
Dim repeat As Integer = 0
If ti.lines.Length > 0 Then
    
    For i As Integer = 0 To ti.Lines.Length - 1
        If (i Mod 3 = 0 ) Then ’我的pdf粘贴出来后,逢 1 4 7行是数据,其他行是垃圾文字
            Dim s As String = ti.Lines(i)
            s= s.Trim
            
            Dim Values() As String
            Values = s.split(" ")
            If Values.Length > = 5 Then
                
                Dim bar As String = Values(1)
                Dim qty As Integer = Values(Values.Length -5)
                
                Dim tg As Table = Tables("JOQuotationMain.JOQuotationDetail")
                
                Dim pg As Integer
                
                pg = tg.Findrow("JOItemCode ='" & bar & "'")
                
                If pg > - 1 Then '如果找到符合条件的行
                    If pg > -1 Then
                        tg.Position = pg '则选择该行
                        Dim nowr As Row = tg.Current
                        nowr("JOQuotationQty") = nowr("JOQuotationQty") + qty
                        repeat =repeat +1 '对应产品数量+1
                    End If
                    
                Else '找不到,就新增
                    
                    Dim filter As String = "JOItemCode = '" & bar & "'"
                    Dim dr As DataRow = DataTables("JOItemInfo").SQLFind (filter)
                    If dr IsNot Nothing Then
                        If DataTables("JOItemInfo").find(filter)  Is Nothing Then '判断是否加载,没加载就加载
                            DataTables("JOItemInfo").AppendLoad(filter)
                        End If
                        
                        Dim r As Row =    tg.AddNew
                        r("JOItemID")= dr("JOItemID")
                        r("JOQuotationQty") = qty
                        tg.AutoSizeCols
                        all=all+1
                    Else
                        MessageBox.Show("找不到第" & (i/3) & "行条码为" & bar & "的样板,请用笔和纸记录下来,并完善样板资料")
                    End If
                End If
                
                
            Else
                MessageBox.show("第" & (i/3) & "款信息有误,读取失败,请用笔和纸记录下来")
            End If
        End If
    Next
    ti.Text=""
    MessageBox.show("产品识别完成," & repeat & "款重复,"  & all & "款新增")
Else
    MessageBox.show("请先粘贴订单PDF表格明细内容")
End If
[此贴子已经被作者于2017/3/8 11:45:47编辑过]

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2017/3/8 11:47:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/8 13:08:00 [只看该作者]

只能按照格式获取了,参考代码

 

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
str = str.replace("审批通过", "").replace(chr(10), vbcrlf)
output.show(str)
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "/.+?.jpg")
output.show("验货报告:" & mc(9*4).value)
output.show("货物2:")
For i As Integer = 9*3-1 To 9*2 Step -1
    output.show(mc(i).value)
Next

Dim mc1 = System.Text.RegularExpressions.Regex.Matches(str, "(?<=申请人部门).+")
output.show("申请人部门:" &mc1(0).value)

reader.Close()


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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2017/3/8 13:15:00 [只看该作者]

用户已经被屏蔽

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


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2017/3/8 13:28:00 [只看该作者]

用户已经被屏蔽

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