Sar*_*nan 18 c# pdf itextsharp c#-4.0
我们使用iTextSharp和C#WinForms应用程序来解析PDF文件.使用iTextSharp,我可以轻松地从PDF文件中提取文本数据.假设PDF文件包含由两行文本包围的图像.在这种情况下,我无法提取有关图像的信息.
我的要求是:
例如,结构元素类似于以下内容:
text :paragraph1
text :paragraph2
Image:Image
text :paragraph3
Table:table info
text :Paragraph4
Run Code Online (Sandbox Code Playgroud)
如果我能以这样的格式获取信息,我可以很容易地理解文本,图像,表格,页眉或页脚信息.
那么,是否可以使用iTextSharp获取此类信息?如果是的话,请赐教.否则,您能否建议一些其他能够满足此要求的工具?
谢谢大家,
Saravanan
小智 5
我曾经有过这种需要.我使用了这个功能(来自使用iTextSharp的Extract图像):
private static PdfObject FindImageInPDFDictionary(PdfDictionary pg)
{
PdfDictionary res =
(PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
PdfDictionary xobj =
(PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
if (xobj != null)
{
foreach (PdfName name in xobj.Keys)
{
PdfObject obj = xobj.Get(name);
if (obj.IsIndirect())
{
PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
PdfName type =
(PdfName)PdfReader.GetPdfObject(tg.Get(PdfName.SUBTYPE));
//image at the root of the pdf
if (PdfName.IMAGE.Equals(type))
{
return obj;
}// image inside a form
else if (PdfName.FORM.Equals(type))
{
return FindImageInPDFDictionary(tg);
} //image inside a group
else if (PdfName.GROUP.Equals(type))
{
return FindImageInPDFDictionary(tg);
}
}
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
正如您在foreach (PdfName name in xobj.Keys)声明中所看到的,我认为您可以轻松地解析整个PDF并处理来自它的各种数据.但我不确定你需要的"垂直性"部分.
希望它可以帮到你.
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |