一、PdfObject: pdf对象 ,有9种,对象是按照对象内涵来分的,如果按照对象的使用规则来说,对象又分为间接对象和直接对象。间接对象是PDF中最常用的对象,如前面对象集合里面的,所有对象都是间接对象,在其他位置通过R关键字来引用,在交叉引用表里面都是通过间接对象来引用的。直接对象就更好理解了,9种对象单独出现的时候就叫直接对象。

PdfObject pdfObject = this.reader.GetPdfObject(index);

pdf对象的公共方法和属性:

 public PRIndirectReference IndRef { get; set; }
public int Length { get; }
public int Type { get; } public bool CanBeInObjStm();
public int CompareTo(PdfObject obj);
public virtual byte[] GetBytes();
public override int GetHashCode();
public bool IsArray();
public bool IsBoolean();
public bool IsDictionary();
public bool IsIndirect();
public bool IsName();
public bool IsNull();
public bool IsNumber();
public bool IsStream();
public bool IsString();
public virtual void ToPdf(PdfWriter writer, Stream os);
public override string ToString();

二、PdfName: is an object that can be used as a name in a PDF-file.- 有常用(官方)名字的pdf对象,根据名字new的pdfObject,俗称Name对象。PdfName 继承自PdfObject

类PdfName的实例化

  /** A name */
public static readonly PdfName IDENTITY = new PdfName("Identity");
/** A name */
public static readonly PdfName IF = new PdfName("IF");
/** A name */
public static readonly PdfName IMAGE = new PdfName("Image");
/** A name */
public static readonly PdfName IMAGEB = new PdfName("ImageB");
/** A name */
public static readonly PdfName IMAGEC = new PdfName("ImageC");
/** A name */
public static readonly PdfName IMAGEI = new PdfName("ImageI");
/** A name */
public static readonly PdfName IMAGEMASK = new PdfName("ImageMask");
/** A name */
public static readonly PdfName INCLUDE = new PdfName("Include");
public static readonly PdfName IND = new PdfName("Ind");
/** A name */
public static readonly PdfName INDEX = new PdfName("Index");
/** A name */
public static readonly PdfName INDEXED = new PdfName("Indexed");
/** A name */
public static readonly PdfName INFO = new PdfName("Info");
/** A name */
public static readonly PdfName INK = new PdfName("Ink");
/** A name */
public static readonly PdfName INKLIST = new PdfName("InkList");

由于PdfName 继承自PdfObject,后者的公用方法和属性同样能被前者调用。

三、PdfNameTree ,这个就是pdf“有名"的文档结构树了。

四、Dictionary
 用"<<"和">>"包含的若干组条目,每组条目都由key和value组成,其中key必须是name对象,并且
 一个dictionary内的key是唯一的;value可以是任何pdf的合法对象(包括dictionary对象).

五、Resources ,是Dictionary 对象

(必须有)记录了当前page用到的所有资源。如果当前页不用任何资源,则这是个空字典。忽略所有字段则表示继承父节点的资源。

Pdf文件解析下载

itextSharp 附pdf文件解析的更多相关文章

  1. iTextSharp - 建立PDF文件

    原文 iTextSharp - 建立PDF文件 01 using iTextSharp.text; 02 using iTextSharp.text.pdf; 03 ... 04 private vo ...

  2. iTextSharp生成PDF文件

    这是一篇简单的教程,所以只涉及一些iTextSharp生成pdf的简单应用,详细教程请搜索iTextSharp进入官网看官方文档(英文版). iTextSharp官方文档:https://itextp ...

  3. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  4. 使用iTextSharp修改PDF文件(一)

    这个iTextSharp确实是个好东西,可以创建.读取PDF格式的文档,虽然我的需求比较简单,但我首先还是基本上.完整地看完了它的相关文档,不喜欢英文的同志,可以搜索一篇<用C#制作PDF文件全 ...

  5. C# 利用ITextSharp导出PDF文件

    最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  6. C#+ItextSharp 查看pdf文件页面尺寸

    1# Nuget下载itextSharp,下载到本地 pm>Install-Package iTextSharp -Version 5.5.10 2# 引用dll,添加命名空间 using iT ...

  7. C#使用itextsharp生成PDF文件

    项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET. 网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下: 使用HTML文 ...

  8. ITextSharp构造PDF文件

    1.1 生成Document Document是我们要生成的PDF文件所有元素的容器,因此要生成一个PDF文档,必须首先定义一个Document对象. Document有三种构造函数:    publ ...

  9. C#使用iTextSharp给PDF文件加水印

    给PDF添加水印,可以用iTextSharp. 步骤1:下载iTextSharp 步骤2:在项目中添加引用itextsharp.dll 步骤3:在程序中使用iTextSharp.text.pdf us ...

随机推荐

  1. SSH集成log4j日志环境[转]

    第一步:在web.xml初始化log4j <context-param> <param-name>log4jConfigLocation</param-name> ...

  2. HTTP 错误 500.23 - Internal Server Error 解决方法

    分析原因:在安装完成后IIS已经支持ASP和ASP.NET 2.0,需要注意的是.NET站点的应用程序池应选用Classic .NET AppPool,而不能用默认的DefaultAppPool,否则 ...

  3. CentOS6.4安装Hadoop2.0.5 alpha - Single Node Cluster

    1.安装JDK7 rpm到/usr/java/jdk1.7.0_40,并建立软链接/usr/java/default到/usr/java/jdk1.7.0_40 [root@server-308 ~] ...

  4. MySQL数据库忘记root密码解决办法

    MySQL数据库忘记root密码解决办法 1.在运行输入services.msc打开服务窗体,找到MYSQL服务.右键停止将其关闭.如图:

  5. QUICK START GUIDE

    QUICK START GUIDE This page is a guide aimed at helping anyone set up a cheap radio scanner based on ...

  6. SqlServer性能优化:创建性能监视器(二)

    添加三个选项: 下一步就可以了 Sql跟踪的模板: 跟踪Sql 语句的执行情况: 使用刚才的新建的模板: 用到的Sql语句: select * from [Sales].[SalesOrderDeta ...

  7. php-数据库访问--数据修改

    主页面元素修改脚本 <?php $code = $_GET["c"]; //造连接对象 $db = new MySQLi("localhost",&quo ...

  8. Python::OS 模块 -- 进程管理

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...

  9. CodeBlocks 中fopen函数不支持命令 “r”

    //codeblocks #include<stdio.h> #include<stdlib.h> void main(void) { FILE *fp=NULL; if((f ...

  10. 【转载】张逸--ThoughtWorks(中国)程序员读书雷达

    原文地址:ThoughtWorks(中国)程序员读书雷达 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与 ...