itextsharp整理
2016-04-24 18:43
337 查看
学习的版本iTextSharp.5.5.5。
关于获取PDF中的图片资源:
/// <summary>
/// 将PDF中的图片资源转换成二进制
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public List<byte[]> ConvertImageData(string filePath)
{
List<byte[]> lst = new List<byte[]>();
using (PdfReader pdf = new PdfReader(filePath))
{
for (int i = 1; i <= pdf.NumberOfPages; i++)
{
byte[] result = null;
PdfDictionary page = pdf.GetPageN(pageNum);
PdfObject obj = FindImageInPDFDictionary(page);
if (obj != null)
{
PdfImageObject imageObj = null;
int XrefIndex = Convert.ToInt32(((PRIndirectReference)obj).Number.ToString(System.Globalization.CultureInfo.InvariantCulture));
PdfObject pdfObj = pdf.GetPdfObject(XrefIndex);
PRStream pdfStrem = (PRStream)pdfObj;
imageObj = new PdfImageObject(pdfStrem);
result = imageObj.GetImageAsBytes();
}
lst.Add(result);
}
}
return lst;
}
提取图片:
关于获取PDF中的图片资源:
/// <summary>
/// 将PDF中的图片资源转换成二进制
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public List<byte[]> ConvertImageData(string filePath)
{
List<byte[]> lst = new List<byte[]>();
using (PdfReader pdf = new PdfReader(filePath))
{
for (int i = 1; i <= pdf.NumberOfPages; i++)
{
byte[] result = null;
PdfDictionary page = pdf.GetPageN(pageNum);
PdfObject obj = FindImageInPDFDictionary(page);
if (obj != null)
{
PdfImageObject imageObj = null;
int XrefIndex = Convert.ToInt32(((PRIndirectReference)obj).Number.ToString(System.Globalization.CultureInfo.InvariantCulture));
PdfObject pdfObj = pdf.GetPdfObject(XrefIndex);
PRStream pdfStrem = (PRStream)pdfObj;
imageObj = new PdfImageObject(pdfStrem);
result = imageObj.GetImageAsBytes();
}
lst.Add(result);
}
}
return lst;
}
提取图片:
/// <summary> /// 提取图片元素 /// </summary> /// <param name="pg"></param> /// <returns></returns> private static PdfObject FindImageInPDFDictionary(PdfDictionary pg) { PdfDictionary res = pg.GetAsDict(PdfName.RESOURCES); PdfDictionary xobj = res.GetAsDict(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)); if (PdfName.IMAGE.Equals(type)) { return obj; }// image inside a form else if (PdfName.FORM.Equals(type) || PdfName.GROUP.Equals(type)) { return FindImageInPDFDictionary(tg); } } } } return null; }
相关文章推荐
- 11.嵌入式PHP
- 10-Apache运行与钩子函数
- 关于如何避免Android中Bitmap引起的OutOfMemoryError
- 夺命雷公狗ThinkPHP项目之----企业网站13之文章列表页的实现(主要是分页的实现)
- 内存泄漏与内存溢出
- ubuntu下无法保存修改文件
- 关于VMware上安装Ubuntu的一切
- 11g: Program with PL/SQL - 1Z0-144
- Apache配置信息中文版
- bzoj 4004: [JLOI2015]装备购买
- 09-通过mod_php5支持PHP
- Tablyout 点击tab切换页面闪烁
- 查出某个特定时间一小时内,两小时内,N小时内的累计和
- 【Swift学习】Swift编程之旅---函数(十)
- Easyui之datagrid实现点击单元格修改单元格背景颜色
- 【转载】Gradle学习 第八章:依赖管理基础
- eclipse配置NDK环境之语法提示和自动编译
- 08-Apache模块介绍
- 凉面
- Asp.net初识