-1

我在同时检索 pdf 文件中的图像和文本时遇到问题,我能够在 pdf 文件中获取图像和文本,但不能同时获取(这将导致是否先渲染图像或文本首先在我的面板控件中?),也许你们可以帮我定义 pdfname 中的每个常量是什么意思?我尝试使用 pdfname.all 但它返回 null,但是当使用 pdfname.resources 时它返回 procset、字体和 xobject。我使用 xobject 作为图像,但什么是 procset 和字体(这可能是文本的样式吗?它是否有 pdfname.text 用于检索文本)?

提前致谢。

4

1 回答 1

0

首先,

我在同时检索 pdf 文件中的图像和文本时遇到问题

对于此任务,您应该使用 iText(Sharp) 解析器 API。在 iTextSharp 中,您基本上实现了 IRenderListener(一个接口,其中包含用于在内容流中获知(位图)图像和文本片段的方法)并用它处理页面内容:

PdfReader reader = new PdfReader(...);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
int pageNumber = [... the number of the page you are interested in; may be a loop variable ...];

IRenderListener listener = new [... your IRenderListener implementation ...]
parser.ProcessContent(pageNumber, listener);

你问

是先渲染图像还是先渲染文本,例如在我的面板控件中

这些IRenderListener方法还检索有关位图或文本片段位置的信息。

对于如何在侦听器中组合文本片段的想法,您可能希望受到iTextSharp 中的SimpleTextExtractionStrategyLocationTextExtractionStrategy实现的启发。

但是,如果您坚持手动进行...

也许你们可以帮我定义 pdfname 中的每个常量是什么意思?

您可以在 PDF 规范 ISO 32000-1:2008 中找到名称映射的定义,这是 Adob​​e在此处提供的副本。

使用 pdfname.resources 时,它会返回 procset、字体和 xobject。我使用 xobject 作为图像,但 procset 和字体是什么(这可能是文本的样式吗?

页面资源字典的内容在规范的第 7.8.3 节中进行了解释。

是否有用于检索文本的 pdfname.text)?

您将在第 9 节中了解如何在页面内容流和 xobjects 中呈现测试。

于 2013-07-15T07:10:14.223 回答