• 如何设置PDFjs 页面标题


    上一节打开PDF文件,标题一直显示文件名称

    如果我们标题名称为了安全设置编码字符这时候客户就看不懂标题了,为了客户体验标题是文件名称

    分析viewer.js 查找设置标题 document.title

    还真有这个

    分析

    setTitleUsingUrl: function setTitleUsingUrl(url) {
    this.url = url;
    this.baseUrl = url.split('#')[0];
    var title = (0, _ui_utils.getPDFFileNameFromURL)(url, '');
    if (!title) {
    try {
    title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url;
    } catch (ex) {
    title = url;
    }
    }
    this.setTitle(title);
    },
    setTitle: function setTitle(title) {
    if (this.isViewerEmbedded) {
    return;
    }
    document.title = title;
    },
    很明显是通过截图文件名称这时我们只要改
    this.setTitle(title); 里面title就好了
    如何是文件名称呢
    对于viewr.html我们没法PHP带值,只能通过URL做文章了
    ?file='PDF地址'+'&title='+'文件名称'
    这样我们可以通过截取文件名称

    首先:
    viewer.html写一个方法用于取文件名称
    //获取地址栏参数值
    function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
    var r = window.location.search.substr(1).match(reg);
    if (r!=null) return (r[2]); return null;
    }
    然后
    viewer.js
    this.setTitle(decodeURIComponent(getQueryString('title'))); 

    这时候标题会生成 <4D6963726F736F667420576F7264202D20BCAAC1D6B0E6C8CBCEC4D2BDD1A72E646F637> + 标题
    分析 setTitle
    if (pdfTitle) {
    _this6.setTitle(pdfTitle + ' - ' + document.title);
    }

    去掉
    pdfTitle + ' - ' + 
    即可
    如上即可实现不同PDF显示不同名称
    
    
  • 相关阅读:
    [刷题] 1016 部分A+B (15分)
    [刷题] 1022 D进制的A+B (20分)
    [刷题] 1021 个位数统计 (15分)
    [刷题] 1020 月饼 (25分)
    洛谷&BZOJ [POI2016]Korale
    反演魔术---二项式反演
    毒瘤养成记1: 如何卡hash
    多项式全家桶
    [CQOI]排序机械臂
    后缀自动机感性理解
  • 原文地址:https://www.cnblogs.com/chaihy/p/10945336.html
Copyright © 2020-2023  润新知