以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何提取PDF文件中表格数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188357)

--  作者:ZJZK2018
--  发布时间:2023/9/15 17:41:00
--  如何提取PDF文件中表格数据
如何提取PDF文件中表格数据到数据库中
[此贴子已经被作者于2023/9/15 19:11:12编辑过]

--  作者:ZJZK2018
--  发布时间:2023/9/15 18:21: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
msgbox(str)
reader.Close()


图片点击可在新窗口打开查看此主题相关图片如下:1694773476332.jpg
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:rrr.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2023/9/15 18:29:49编辑过]

--  作者:有点蓝
--  发布时间:2023/9/16 11:44:00
--  
可能.net版本问题,要引用.net 4.0的iTextSharp.dll
--  作者:ZJZK2018
--  发布时间:2023/10/18 22:09:00
--  
Dim doc As org.apache.pdfbox.pdmodel.PDDocument = Nothing
Try
    doc = org.apache.pdfbox.pdmodel.PDDocument.load("d:\\AAA.pdf")
    Dim pages = doc.getDocumentCatalog().getAllPages()
    Dim pdfStripper = new org.apache.pdfbox.util.PDFTextStripper
    Dim text = pdfStripper.getText(doc)
    msgbox(text)
catch ex As exception
    msgbox(ex.message)
Finally
    If doc IsNot Nothing Then
        doc.close()
    End If
End Try


图片点击可在新窗口打开查看此主题相关图片如下:1697638434719.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2023/10/18 22:59:00
--  
使用的第三方dll是.net 4.0的吗?复制到Foxtable安装目录了吗?
--  作者:ZJZK2018
--  发布时间:2023/10/18 23:36:00
--  
我用的是net4.0,
itextsharp.dll已复制了,但还是出错

我用下面代码是可以的

Dim reader As New iTextSharp.text.pdf.PdfReader("d:\\AAA.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)

Output.Show(str)

reader.Close()


但为什么用4楼时会出错???
[此贴子已经被作者于2023/10/18 23:39:18编辑过]

--  作者:有点蓝
--  发布时间:2023/10/19 8:23:00
--  
4楼是另外一个组件吧,和itextsharp没有任何关系
--  作者:ZJZK2018
--  发布时间:2023/10/19 9:33:00
--  
使用的第三方dll是.net 4.0的吗?复制到Foxtable安装目录了吗?
我用net4.0的, 其他如何处理??

--  作者:有点蓝
--  发布时间:2023/10/19 9:44:00
--  
其他什么东西如何处理?
--  作者:ZJZK2018
--  发布时间:2023/10/19 10:03:00
--  
使用的第三方dll是.net 4.0的吗?复制到Foxtable安装目录了吗?  Net4.0如何复制到Foxtable安装目录