X才简历下载
本帖最后由 lovelinessmoe 于 2022-9-1 08:37 编辑> 本人所发布的一切软件仅限用于学习和研究目的,不得用于商业或非法用途,否则,一切后果请自负。版权争议与本站无关。您必须在下载后的24小时内,从您的设备中彻底删除上述内容。若您需要非免费软件或服务,请购买正版授权合法使用。若侵犯您权益,请资料联系我。
阿巴阿巴,这个艾特自动变成了艾特朋友,呜呜呜,手动改下吧,大家
OK兄弟们,虽然不是同一时间,也不是同一地点,这次老师要做简历,同学好不容易填完的东西发现要会员才能下载简历,还是写个脚本下载
GreasyFork也是没上传,别问,问就是怕死
使用jsPDF+html2canvas实现了PDF格式的下载
按钮比较丑,丑就丑吧
是个油候脚本,要在简历的的查看页面中或者分享界面使用
```javascript
// ==UserScript==
// @name 免费下载简历
// @namespace
// @version 0.1
// @description一键下载
// @AuThor loveliness
// @match https://www.ycresume.com/cv/*
// @Icon http://q1.qlogo.cn/g?b=qq&nk=1695560542&s=640
// @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @require https://cdn.bootcss.com/FileSaver.js/1.3.8/FileSaver.min.js
// @require https://html2canvas.hertzen.com/dist/html2canvas.min.js
// @require https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jspdf/2.5.1/jspdf.umd.min.js
// @grant unsafeWindow
// @license MIT
// ==/UserScript==
(function ($) {
'use strict';
let btn =
'<button type="button" id="downFree" class="el-button my_cloud_r_btn el-button--primary">' +
'<span><i class="webfont webicon-xiazai"></i> 下载简历FREE</span>' +
'</button>';
//添加按钮
$(".fixed_box").prepend(btn);
$("#downFree").click(function () {
downMain()
});
let downMain = function () {
window.jsPDF = window.jspdf.jsPDF;
let filename = '导出的页面名字.pdf';
let element = $('.resume_box'); // 这个dom元素是要导出pdf的div容器
let w = element.width(); // 获得该容器的宽
let h = element.height(); // 获得该容器的高
let offsetTop = element.offset().top; // 获得该容器到文档顶部的距离
let offsetLeft = element.offset().left; // 获得该容器到文档最左的距离
let canvas = document.createElement("canvas");
let abs = 0;
let win_i = $(window).width(); // 获得当前可视窗口的宽度(不包含滚动条)
let win_o = window.innerWidth; // 获得当前窗口的宽度(包含滚动条)
if (win_o > win_i) {
abs = (win_o - win_i) / 2; // 获得滚动条长度的一半
}
canvas.width = w * 2; // 将画布宽&&高放大两倍
canvas.height = h * 2;
let context = canvas.getContext("2d");
context.scale(2, 2);
context.translate(-offsetLeft - abs, -offsetTop);
// 这里默认横向没有滚动条的情况,因为offset.left(),有无滚动条的时候存在差值,因此
// translate的时候,要把这个差值去掉
html2canvas(element, {
useCORS: true,
dpi: window.devicePixelRatio * 2,
scale: 2,
width: w,
height: h,
pagesplit: true,
background: "#ffffff"
}).then(function (canvas) {
let contentWidth = canvas.width;
let contentHeight = canvas.height;
//一页pdf显示html页面生成的canvas高度;
let pageHeight = contentWidth / 592.28 * 841.89;
//未生成pdf的html页面高度
let leftHeight = contentHeight;
//页面偏移
let position = 0;
//a4纸的尺寸,html页面生成的canvas在pdf中图片的宽高
let imgWidth = 595.28;
let imgHeight = 592.28 / contentWidth * contentHeight;
let pageData = canvas.toDataURL('image/jpeg', 1.0);
let pdf = new jsPDF('', 'pt', 'a4');
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
//当内容未超过pdf一页显示的范围,无需分页
if (leftHeight < pageHeight) {
pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
} else { // 分页
while (leftHeight > 0) {
pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
leftHeight -= pageHeight;
position -= 841.89;
//避免添加空白页
if (leftHeight > 0) {
pdf.addPage();
}
}
}
pdf.save(filename);
});
}
})(jQuery);
``` C哥888 发表于 2022-9-1 11:36
贴在脚本出现很多错误啊,上面的图片代码要自己打就算了
他是自动把油猴的艾特变成艾特人了,不知道怎么弄回去 哦哦啦哦哦啦 楼主厉害,{:1_921:} 感谢楼主分享! 一遇到这种纯代码的就蒙…… 感谢楼主分享! 感谢分享,正好需要 可以可以,学到了。 可以可以 楼主可以
页:
[1]
2