2012-10-04 171 views
2

我如何知道PDF是否被标记?我正在开发一个程序,它将复制PDF文件中的文本并将其显示在我的应用程序中,所以我试图测试PDF文件,我从PDF文件(普通复制+粘贴)中复制了一个表格并将其粘贴到MS字。结果是没有表的正常文本。有一些问题,当你从PDF文件复制表格并将其粘贴到Word时,它会变成图片。真的吗?如何确定PDF是否被标记?

+0

从PDF复制的文本是否可以作为表格粘贴取决于您用来查看/复制PDF和要粘贴到的程序的程序。 PDF可能会将文本显示为表格,但当您从中复制时,查看器正在将其转换为纯文本。或者,您粘贴的程序可能会在粘贴时将其转换为纯文本。 –

+0

啊所以这取决于它将如何被复制?即时通讯计划使用API​​读取PDF文件和即时通讯在Android上开发我的应用程序。 –

回答

4

如何确定PDF被标记或不?

根据您正在使用,以处理您的文件库中,你可以尝试检索来自Catalog辞典条目MarkInfo

从PDF规格:

表3.25条目目录中的字典
KEY: MarkInfo
TYPE:字典
VALUE:(可选; PDF 1.4)标记信息字典,其中包含有关文档对标记PDF 约定的使用情况的信息(请参阅第10.6节“逻辑结构”)。

然而,即使这个属性的值设置为TRUE,这并不意味着该标签实际上是在那里,如果是这样,他们可能不会在所有的提取表是有用到您。您仍然可以使用仅使用标记标记段落和图片的表格来查找PDF文件。

长话短说,除非正在生成您的应用程序要消耗,这样就可以知道哪个标签来查找文件,它是不是一个好主意,依靠这些标签为“从PDF中提取表格“。

1

我发现了一个不同的问题的评论,似乎已经回答了这个问题。

How to read a Table in a PDF using iText java?

您可以提取从内容流中的文本,但对于普通的PDF文件,其结果将是纯文本(没有任何结构)。如果页面上有表格,该表格将不会被识别。你会得到内容和一些空白空间,但这不是一个表格结构!只有你有一个带标签的PDF,你才能获得一个XML文件。如果PDF中包含被识别为表格标签的标签,这将在PDF中反映出来。

这是http://support.itextpdf.com/node/27

+0

哦。所以即使使用PDF的正常提取来编程它也只会是文本格式。甚至显示? –

+0

只有在PDF被标记并可以转换为xml时,才会以表格的形式显示。 –