一、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. jquery实现百度类似搜索提示功能(AJAX应用)

    有时候觉得百度那个输入内容就有提示的工具很神奇,它究竟是怎么做到的呢?以前在一个进销存系统中也做过这么个功能,但是远远不及百度的功能强大,百度可以输入首字母,关键字拼音,或关键字都可以匹配,有时在想, ...

  2. pwnable.kr-collision

    题目: 链接后登陆 ssh col@pwnable.kr -p2222 查看文件以及权限 Ls –al 查看代码 cat col.c 根据 if(strlen(argv[1]) != 20){ pri ...

  3. cocos2d-x 开头配置(Windows 平台)

    工欲善其事,必先利其器. 要使用 cocos2d-x 引擎,就要配置(或者安装)引擎,到 cocos2d-x 官网下载页下载引擎,官网给了2.x和3.x两个版本,我使用的是3.6的版本,3.x的版本类 ...

  4. RoseRT 建模学习

    目录: 一.RoseRT理论知识 二.一个完整模型的建立 三.TD-SCDMA(UE侧)RRC层建模的学习 四.LTE的RRC层建模(1.自主完成‘2.也可以是L2) 五.参考文献 一.RoseRT理 ...

  5. HDU1004 BALLO0N

    Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...

  6. SQLSTATE[HY000] [2003] Cant connect to MySQL server

    今天要连远程数据库,结果PHP报错 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003 ...

  7. 《Java中的包机制》

    /* 包的机制:(1) */ package lee; public class PackageTest { public void Test(int num) { System.out.printl ...

  8. Java类与对象——几个课堂例子的总结及作业

    作业:使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 源代码: import java.util.Scanner; ...

  9. iOS学习之六种传值方式

    iOS页面传值方式 应用于: 两个互动的界面:1)页面一跳转到页面二,页面一的textField的值传给页面二的label.2)A页面跳转到B页面,B页面再跳转回A页面(注册页面跟登录页面) 两个不互 ...

  10. 2-legged oauth & 3-legged oauth

    3-legged oauth resource owner, client, server. resource owner 给client访问权限去访问resource owner在server上的r ...