lovelinessmoe 发表于 2022-8-31 22:41

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);


```

lovelinessmoe 发表于 2022-9-18 17:51

C哥888 发表于 2022-9-1 11:36
贴在脚本出现很多错误啊,上面的图片代码要自己打就算了

他是自动把油猴的艾特变成艾特人了,不知道怎么弄回去

dork 发表于 2022-9-1 01:15

哦哦啦哦哦啦

dkzzlf 发表于 2022-9-1 06:54

楼主厉害,{:1_921:}

l441669899 发表于 2022-9-1 07:27

感谢楼主分享!

cn2jp 发表于 2022-9-1 07:44

一遇到这种纯代码的就蒙……

iawyxkdn8 发表于 2022-9-1 08:21

感谢楼主分享!

sololdz 发表于 2022-9-1 08:34

感谢分享,正好需要

james1977 发表于 2022-9-1 10:32

xiaomingSTUDENT 发表于 2022-9-1 10:51

可以可以,学到了。

su1u 发表于 2022-9-1 11:24

可以可以 楼主可以
页: [1] 2
查看完整版本: X才简历下载