![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
于对对
这个作者很懒,什么都没留下…
展开
-
PdfReader 2:this.readPdf() -5 60 DIC、array 类型
{ # 如果ch==60,< case 60: # 下一个字符,如果还是60,则说明还是 字典的< ,否则就是内部的字符串 v1 = this.file.read(); if (v1 == 60) { this.type = PRTokeniser.TokenType.START_DIC; } else { outBuf = new StringBuffer();原创 2021-01-30 15:40:59 · 224 阅读 · 0 评论 -
PdfReader 2:this.readPdf() -4 PdfName
代码如下:public class PdfName extends PdfObject implements Comparable<PdfName> { ... public static final PdfName IMAGE = new PdfName("Image"); ... //很多的pdfname 对象 public static Map<String, PdfName> staticNames; // 静态变量,用于存储所有的静态名称 priva原创 2021-01-25 20:38:44 · 674 阅读 · 0 评论 -
PdfReader 2:this.readPdf() -3 name类型
case47 就是 name 类型。在分析 case47 之前,先了解一下name类型。PdfName 类型{ case 47: outBuf = new StringBuffer(); this.type = PRTokeniser.TokenType.NAME; while(true){ ch = this.file.read(); if(delims[ch +1]) { this.backOnePosition(ch); break; } i原创 2021-01-24 14:22:08 · 120 阅读 · 0 评论 -
PdfReader 2:this.readPdf() - 2:字符串类型
这一篇来分析 case 40,也就是 pdf 的字符串类型,以 ( 开头,以)结尾。1,先回忆一下状态机算法:switch (变量a):case 状态1:变量a = 某某某1;case 状态2:变量a = 某某某2;然后看代码:看大结构:{ while(true){ // 获取复合条件的ch while(true){ //...... } if (v1 == -1){ break; } // 将ch放入buf outBuf.append((char)原创 2021-01-22 14:35:51 · 162 阅读 · 1 评论 -
PdfReader 2:this.readPdf() - 1;
pdfreader 的主要部分package com.itextpdf.text.pdfpublic class PdfReader implements PdfViewerPreferences {// 这个方法里面有很多对象 protected void readPdf() throws IOException { try { this.fileLength = this.tokens.getFile().length(); // 这个token 就原创 2021-01-19 19:46:42 · 360 阅读 · 0 评论 -
PdfReader 1:this.tokens = new PRTokeniser(filename);
这个过程,其实就是打开pdf文件,并映射到内存package com.itextpdf.text.pdf;public class PRTokeniser { public PRTokeniser(String filename) throws IOException { this.file = new RandomAccessFileOrArray(filename); // 所以,最终文件存于 file.rf.mappedByteBuffer }}pack原创 2021-01-15 20:01:13 · 217 阅读 · 0 评论 -
PDF解析:目录(itextpdf)
想要读懂 itextpdf 的源代码,要多调试,对整个代码的脉络掌握个大概,形成一个目录,再分析细节。所以我的目录其实是这个源码的流程轨迹1,先要读取pdfpublic class PdfReader implements PdfViewerPreferences{ public PdfReader(String filename) throws IOException { this((String)filename, (byte[])null); } publi原创 2021-01-15 19:59:40 · 687 阅读 · 1 评论