2024年最全PDF(2),2024年最新手把手教你写物联网嵌入式开发项目文档
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
rotation: this._pagesRotation,
pdfOpenParams: pdfOpenParams
};
通过打印能够发现其中的pageNumber就是当前页码,intTop 就是发现那个编码中的变化数字中的倒数第二个参数,解释为高度(哈哈,现在才知道不是记录的行,而是记录的当前页码的高度实现的“行定位”),现在第一个参数有了,主要目标就是那个num的值了,跟我们在页面看到的值完全不一样的,我就猜想一定是一个json或者数组啥的通过key value对应到的页码,然后我就通过这个方法顺藤摸瓜,找到了大本营:
{
key: ‘cachePageRef’,
value: function cachePageRef(pageNum, pageRef) {
if (!pageRef) {
return;
}
var refStr = pageRef.num + ’ ’ + pageRef.gen + ’ R’;
this._pagesRefCache[refStr] = pageNum;
}
}, {
key: ‘_cachedPageNumber’,
value: function _cachedPageNumber(pageRef) {
var refStr = pageRef.num + ’ ’ + pageRef.gen + ’ R’;
return this._pagesRefCache && this._pagesRefCache[refStr] || null;
}
},
我这边大概在7139行(viewer.js),这二个方法狠狠重要,一个是页码(下面),一个是创建的key-value格式的编码(上面一个),通过console得知,当你加载pdf文件的时候就会去调用上面这个方法,将页码和编码对应(对应格式是“27 0 R”-“4”,4是value就是页码,前面是key就是编码)。
到目前为止获取就有了(拨开云雾见青天)的感觉,下面就是获取了,上面说过9千多行那个滚动页面就会走的那个方法,那几个参数,其中的intTop就是我们需要的高度的值,页码需要通过那个key-value获取,所以我开始修改了源码。
我们需要实时的获取当前页的数据
this._location = {
pageNumber: pageNumber,
scale: normalizedScaleValue,
top: intTop,
left: intLeft,
rotation: this._pagesRotation,
pdfOpenParams: pdfOpenParams
};
//下方是我添加的代码(这里你需要在viewer.html页面中加入二个隐藏的input,id为page_top和page_cache)
var page_top = document.getElementById(“page_top”);
page_top.value = this._location.top;
var page_cache = document.getElementById(“page_cache”);
page_cache.value = this.getPageCache(this._location.pageNumber);
最后一行那个getPageCache方法是我修改的源码:
this._location = {
pageNumber: pageNumber,
scale: normalizedScaleValue,
top: intTop,
left: intLeft,
rotation: this._pagesRotation,
pdfOpenParams: pdfOpenParams
};
//下方是我添加的代码(这里你需要在viewer.html页面中加入二个隐藏的input,id为page_top和page_cache)
var page_top = document.getElementById(“page_top”);
page_top.value = this._location.top;
var page_cache = document.getElementById(“page_cache”);
page_cache.value = this.getPageCache(this._location.pageNumber);
}
},{//下面是我添加的方法
//这个方法用来获取对应num的页码cache
key:‘getPageCache’,
value:function getPageCache(pageNum){
//循环结果(这里的page_cache是一个数组,下面细说)
var str = JSON.stringify(page_cache);
// console.log(“格式为:”+typeof(JSON.parse(str)))
// console.log(“json的数据:”+str)
for(var key in JSON.parse(str)){
if(JSON.parse(str)[key]==pageNum){
return key;
}
}
}
我们上面有说那个key-value格式的数据,因为不是一个代码块中,所在我在js的最上方加上了一个全局变量page\_cache
//定义全局变量 去接受页码对应编码值
var page_cache = [];
然后在页面加载pdf的时候也给这个数组赋值一下:
{
key: ‘cachePageRef’,
value: function cachePageRef(pageNum, pageRef) {
if (!pageRef) {
return;
}
var refStr = pageRef.num + ’ ’ + pageRef.gen + ’ R’;
this._pagesRefCache[refStr] = pageNum;
//当赋值完毕之后,给全局赋值,这样我就获取到这个编码了
page_cache = this._pagesRefCache;
}
}, {
key: ‘_cachedPageNumber’,
value: function _cachedPageNumber(pageRef) {
var refStr = pageRef.num + ’ ’ + pageRef.gen + ’ R’;
return this._pagesRefCache && this._pagesRefCache[refStr] || null;
}
},
这样就如上面,通过这个全局去获取对应的编码值。(整个获取就到此结束了(设置锚点))
补充一下:有的人可能不会获取iframe下的文件,发一下我的这个:
//这个是子页面
//js
top = $(“#iframe01”).contents().find(“#page_top”).val();
cache = KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲iframe01").cont…(“#iframe01”).contents().find(“#page_top”).val());
console.log(“父页面获取的页码编码:”+$(“#iframe01”).contents().find(“#page_cache”).val());
这样就获取了那个编码中的num和那个高度的值了。
下面就是实现定位了(锚点点击定位):直接上代码
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
上一篇: 物联网开发实战(上).pdf