Foxtable(狐表)用户栏目专家坐堂 → [求助]spire.pdf如何提取 PDF 中的表格


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

主题:[求助]spire.pdf如何提取 PDF 中的表格

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


加好友 发短信
等级:童狐 帖子:235 积分:2352 威望:0 精华:0 注册:2011/6/19 0:05:00
[求助]spire.pdf如何提取 PDF 中的表格  发帖心情 Post By:2021/12/4 9:28:00 [只看该作者]

想使用Spire.pdf提取PDF中的表格,遇到问题。用的是7.11.1,net4的spire.pdf.dll
spire网址:https://www.e-iceblue.cn/table/extract-table-from-pdf-file-using-c.html
1、VB.NET代码
以下内容为程序代码:

1 '原来的代码
2 Imports Spire.Pdf
3 Imports Spire.Pdf.Utilities
4 Imports System.IO
5 Imports System.Text
6
7 Namespace ExtractTable
8     Class Program
9         Private Shared Sub Main(args As String())
10             '实例化PdfDocument类的对象
11             Dim pdf As New PdfDocument()
12
13             '加载PDF文档
14             pdf.LoadFromFile("sample.pdf")
15
16             '创建StringBuilder类的对象
17             Dim builder As New StringBuilder()
18
19             '实例化PdfTableExtractor类的对象
20             Dim extractor As New PdfTableExtractor(pdf)
21
22             '声明PdfTable类的表格数组
23             Dim tableLists As PdfTable()
24
25             '遍历PDF页面
26             For pageIndex As Integer = 0 To pdf.Pages.Count - 1
27                 '从页面提取表格
28                 tableLists = extractor.ExtractTable(pageIndex)
29
30                 '判断表格列表是否为空
31                 If tableLists IsNot Nothing AndAlso tableLists.Length > 0 Then
32                     '遍历表格
33                     For Each table As PdfTable In tableLists
34                         '获取表格中的行和列数
35                         Dim row As Integer = table.GetRowCount()
36                         Dim column As Integer = table.GetColumnCount()
37
38                         '遍历表格行和列
39                         For i As Integer = 0 To row - 1
40                             For j As Integer = 0 To column - 1
41                                 '获取行和列中的文本
42                                 Dim text As String = table.GetText(i, j)
43
44                                 '写入文本到StringBuilder容器
45                                 builder.Append(text & Convert.ToString(" "))
46                             Next
47                             builder.Append(vbCr & vbLf)
48                         Next
49                     Next
50                 End If
51             Next
52
53             '保存提取的表格内容为.txt文档
54             File.WriteAllText("ExtractedTable.txt", builder.ToString())
55         End Sub
56     End Class
57 End Namespace


2、自己修改后的代码
以下内容为程序代码:

1 '实例化PdfDocument类的对象
2 Dim pdf As New spire.pdf.PdfDocument()
3
4 '加载PDF文档
5 pdf.LoadFromFile("sample.pdf")
6
7 '创建StringBuilder类的对象
8 Dim builder As New StringBuilder()
9
10 '实例化PdfTableExtractor类的对象
11 'Dim extractor As New spire.pdf.PdfTableExtractor(pdf) '出错
12
13 '声明PdfTable类的表格数组
14 Dim tableLists As spire.pdf.Tables.PdfTable()
15
16 '遍历PDF页面
17 For pageIndex As Integer = 0 To pdf.Pages.Count - 1
18 '从页面提取表格
19 'tableLists = spire.pdf.Tables.extractor.ExtractTable(pageIndex) '出错
20
21 '判断表格列表是否为空
22 If tableLists IsNot Nothing AndAlso tableLists.Length > 0 Then
23 '遍历表格
24 For Each Table As spire.pdf.Tables.PdfTable In tableLists
25 '获取表格中的行和列数
26 'Dim Row As Integer = Table.GetRowCount() '出错
27 'Dim Column As Integer = Table.GetColumnCount() '出错
28
29 '遍历表格行和列
30 For i As Integer = 0 To Row - 1
31 For j As Integer = 0 To Column - 1
32 '获取行和列中的文本
33 Dim text As String = Table.GetText(i, j)
34
35 '写入文本到StringBuilder容器
36 builder.Append(text & Convert.ToString(" "))
37 Next
38 builder.Append(vbCr & vbLf)
39 Next
40 Next
41 End If
42 Next
43
44 '保存提取的表格内容为.txt文档
45 File.WriteAllText("ExtractedTable.txt", builder.ToString())


3、问题
以下内容为程序代码:

1 '实例化PdfDocument类的对象
2 Dim pdf As New spire.pdf.PdfDocument()
3
4 '加载PDF文档
5 pdf.LoadFromFile("sample.pdf")
6
7 '创建StringBuilder类的对象
8 Dim builder As New StringBuilder()
9
10 '实例化PdfTableExtractor类的对象
11 'Dim extractor As New spire.pdf.PdfTableExtractor(pdf) '出错


11行之前运行通过,之后的部分代码不能通过。
查看帮助文件,没有PdfTableExtractor,网站说明又有,不知道怎么回事。

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/4 9:37:00 [只看该作者]

组件的使用问题请去咨询对方客服。我们没有办法做支持的

 回到顶部