找回密码
 立即注册

QQ登录

只需一步,快速开始

白了头

注册会员

8

主题

23

帖子

85

积分

注册会员

积分
85
白了头
注册会员   /  发表于:2023-6-29 14:11  /   查看:768  /  回复:3
在保存PDF前注册了多种字体,但是只有第一个字体 宋体normal 保存PDF之后不是乱码,其他几种还是乱码格式


具体注册代码如下:

var fontTtfs = [{
    name: "宋体",
    type: "Normal",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/simsun.ttf"
}, {
    name: "宋体",
    type: "Bold",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/simsun-bold.ttf"
}, {
    name: "Times New Roman",
    type: "Normal",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/times.ttf"
},{
    name: "Times New Roman",
    type: "Bold",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/timesbd.ttf"
},{
    name: "Times New Roman",
    type: "Bold Italic",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/timesbi.ttf"
},{
    name: "Times New Roman",
    type: "Italic",
    serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/timesi.ttf"
}/*, {
        name: "黑体",
        type: "normal",
        serverPath: IFM_CONTEXT + "/static/plugin/spread-sheets-11.2.6/designer/index/font/simhei.ttf"
}*/];
function setFont() {
    for (var key in fontTtfs) {
        var name = fontTtfs[key].name;
        var type = fontTtfs[key].type;
        var serverPath = fontTtfs[key].serverPath;
        registerServerFont(name, type, serverPath);
    }
}

/**
* 加载时为字体赋值(只用于导出pdf
*/
var checkfontsuccess = 0;
function registerServerFont(name, type, serverPath) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', serverPath, true);
    xhr.responseType = 'blob';
    xhr.onload = function (e) {
        if (this.status == 200) {
            var blob = this.response;
            // Blob 对象转换成 ArrayBuffer
            var reader = new FileReader();
            reader.onload = function (e) {
                var fontrrayBuffer = reader.result;
                var fonts = GC.Spread.Sheets.PDF.PDFFontsManager.getFont(name) || {};
                fonts[type] = fontrrayBuffer;
                GC.Spread.Sheets.PDF.PDFFontsManager.registerFont(name, fonts);
            }
            reader.readAsArrayBuffer(blob);
            checkfontsuccess++;
        } else {
            designer.MessageBox.show("字体文件开小差了!请刷新页面!", "提示", 3);
        }
    };
    xhr.send();
}

请问是啥问题

3 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-29 16:45:18
沙发
您好,看您的代码无法判断是哪里出现了问题,请您上传一个可以复现出您所描述的问题的Demo这边调研一下。
回复 使用道具 举报
白了头
注册会员   /  发表于:2023-6-29 17:32:53
板凳
Joestar.Xu 发表于 2023-6-29 16:45
您好,看您的代码无法判断是哪里出现了问题,请您上传一个可以复现出您所描述的问题的Demo这边调研一下。

重启了一下项目测试,发现保存的时候报错如下:

Not a supported font format or standard PDF font.
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-29 18:10:30
地板
白了头 发表于 2023-6-29 17:32
重启了一下项目测试,发现保存的时候报错如下:

Not a supported font format or standard PDF font.

您好,还是请您上传一个可以复现问题的Demo,这边结合实际代码调查一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部