所以,我有一个带标签的Tagged PDF文件。正如您在此屏幕截图中看到的那样:
/ TABLE标签包含所有/ TR(行)和/ TD(单元格) 现在我尝试使用以下代码获取这些对象:
PdfReader reader = new PdfReader("test.pdf");
PdfObject dict = null;
for (int i = 0; i < reader.XrefSize; i++)
{
PdfObject obj = reader.GetPdfObject(i);
if (obj != null)
if (obj.GetType() == typeof(PdfDictionary))
{
dict = ((PdfDictionary)obj).GetAsDict(PdfName.TABLE);
if (dict != null)
{
//Do Something
}
}
}
答案 0 :(得分:0)
你正试图重新发明轮子。当我查看你的代码时,我看到一个需要大量编程的过程的第一步,但是工作已经完成。
如果您使用的是iText 5,请查看此TaggedPdfReaderTool
;如果您使用的是iText 7,请查看此TaggedPdfReaderTool
。
我很久以前在我的书“iText in Action - Second Edition”的背景下写了这个工具。我把它写成概念证明,表明我可以将XML文件转换为Tagged PDF,并且我可以将Tagged PDF转换回原始的XML文件。
在iText 7中,这个工具得到了改进,现在它已经在我们的测试套件中使用了。我们创建标记PDF,在我们的测试中,我们将它们转换为XML。如果XML与“预烘焙”XML不对应,则测试失败。
您可以使用此工具将Tagged PDF转换为XML文件,然后处理该XML文件以提取表格。