文件判别:
- pdf(%PDF-,%FDF-)
- xps-doc (压缩文件)
- svg (<svg 开头)
- cbz (压缩文件)
- img (图形文件)
- html (<!doctype html 或者 <html)
- office (压缩文件)
- epub (压缩文件)
- gz
流程
识别文件类型
使用特定文件的open函数
- 读取版本信息
- 读取xref信息(文档尾部xref,位置由startxref指定)
- 是否加密
- 。。。
获取页数
- 获取章节,pdf只有一个章节
- 获取章节页数
drawrange
- fz_parse_page_range 获取页数范围
- drawpage - fz_load_page - fz_load_chapter_page - load_page
pdf_load_page_tree_internal 加载页对象
- pdf_load_page_tree_imp
fz_run_page
- fz_run_page_contents -
- fz_run_page_annots
- fz_run_page_widgets
结构fz_stream
- fz_file_stream state
流的文件信息,包括文件句柄(file),文件名(filename),缓存(buffer 长度4096) - unsigned char *rp;
读指针 - unsigned char *wp;
写执政 - int64_t pos;
文件句柄当前位置
结构 fz_document
定义文档的各种处理函数(比如密码处理,页数统计等)
- fz_page *open; 当前已打开页列表
接口 pdf_document
pdf_process_stream 处理流
int next_file()
从文件句柄中度文件到buffer中,
返回读到的一个直接,同时读指针加一
文档更新时间: 2025-08-07 13:54 作者:方杰