pdf(Portable Document Format) 的 HTML5 查看器
文件流管理
file:区分,fs.createReadStreamhttp:区分,http.request / https.request => responseXMLHttpRequest / fetch使用 web worker 保证大文件处理的性能
Promise定义ReadableStream定义
在两端消息内用‘暗语’传递状态变更
ReadableStream.start‘发送请求’ReadableStream.start的promise完成,ReadableStream.pull‘发送暗语-传吧’controller.enqueue()数据入流;ReadableStream.pull的promise完成,controller.close()onready-sendtest-ontest,做三次握手确保worker准备好了sendready-ontest-sendtestPostScript 内容按对象存储,页面由对对象的引用构成,文件首位做标识做辨认 线性内容,即只有一个对象,直接按页面展示?
%PDF-${version}new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d])new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a])交叉引用表
不一定有
startxref ${开始位置}new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66])wintersmith根据./config.json配置构建,加上jsdoc,交付在gh-pages分支,用于github-docgulp chromium src/pdf.js、src/pdf.worker.js和web/viewer.js做webpack打包输出gulp servergulp genericgulp dist-installgit``commit信息为依据version.json[
"src/{display,shared}/*.js",
"!src/shared/{cffStandardStrings,fonts_utils}.js",
"src/pdf.js",
"web/*.js",
"!web/{app,pdfjs,preferences,viewer}.js"
]
acorn做代码解析,构建ASTescodegen从AST再生成代码default_preferences.jsonI18n文件夹内的文件夹,并验证处理viewer.properties文件locale.properties