首先,
我在同时检索 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 中的SimpleTextExtractionStrategy或LocationTextExtractionStrategy实现的启发。
但是,如果您坚持手动进行...
也许你们可以帮我定义 pdfname 中的每个常量是什么意思?
您可以在 PDF 规范 ISO 32000-1:2008 中找到名称映射的定义,这是 Adobe在此处提供的副本。
使用 pdfname.resources 时,它会返回 procset、字体和 xobject。我使用 xobject 作为图像,但 procset 和字体是什么(这可能是文本的样式吗?
页面资源字典的内容在规范的第 7.8.3 节中进行了解释。
是否有用于检索文本的 pdfname.text)?
您将在第 9 节中了解如何在页面内容流和 xobjects 中呈现测试。