导出pdf UTF-8编码

时间:2019-02-06 13:38:06

标签: javascript jspdf aspnetboilerplate pdfmake jspdf-autotable

在将数据导出到带有阿​​拉伯字符的pdf时遇到一些麻烦 ,编码不正确

我尝试使用jsPDF插件来jsPDF-AutoTable,并且尝试了pdfMake,但是问题仍然存在

此外,我正在使用ASP.Net Boilerplate v3.2.4作为后端,Angularjs v1.7.5

我想将ui-grid数据导出为PDF

在这里查看我的angularjs代码:

vm.exportPdf = function () {
            var columns = [];
            var rows = [];

            // copy ui-grid's titles to pdf's table definition:
            var allColumnDefs = vm.gridOptions.columnDefs;
            for (var columnIdx in allColumnDefs) {
                var columnDef = allColumnDefs[columnIdx];
                if (columnDef.name !== 'actions') {
                    var newColumnDef = {
                        title: columnDef.displayName,
                        dataKey: columnDef.name
                    };
                    columns.push(newColumnDef); 
                }
            }

            // copy ui-grid's actual data to pdf's table:       
            var allRecords = vm.gridOptions.data;
            for (var recordIdx in allRecords) {
                var record = allRecords[recordIdx];
                var newRow = {};
                for (var columnIdx1 in allColumnDefs) {
                    var columnDef1 = allColumnDefs[columnIdx1];
                    var value = record[columnDef1.name];
                    if (value !== null) {
                        newRow[columnDef1.name] = value;
                    }
                }
                rows.push(newRow);
            }

            var docName = 'myFile.pdf';
            var doc = new jsPDF('p', 'pt');
            doc.autoTable(columns, rows, { styles: { fontSize: 8.5 } });
            doc.save(docName);
        };

输出阿拉伯字符如下:

þÿ41C) 'DG1E DD-H'D'

所以我在这里的问题是,是否有人遇到过这个问题,解决方案是什么?

或者还有其他要导出为PDF的库或插件,但支持UTF-8和阿拉伯字符。

谢谢。

0 个答案:

没有答案