Angular jspdf [atob] 自定义字体问题(希腊字符)
Angular jspdf [atob] problem with custom font (greek characters)
我尝试从 service 生成带有希腊字符的 pdf。
在我的本地机器上,它工作得很好。但在真实服务器上我收到错误
sPDF PubSub Error Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded. DOMException: Failed to
execute 'atob' on 'Window': The string to be decoded is not correctly
encoded.
.ttf 文件在服务文件夹中
我从我的组件调用这个函数。 服务代码是:
...//some imports
public printSomeData(data: any) {
// getting data to the parse
doc.addFileToVFS('Adria Slab W00 Medium.ttf')
doc.addFont('Adria Slab W00 Medium.ttf', 'Adria Slab W00 Medium', 'normal')
doc.setFont('Adria Slab W00 Medium', 'sans-serif')
doc.setFontSize(data.fontSize)
let body = []
// generate body code
autoTable(doc,{
head: [head],
body: body,
tableLineColor: [189, 195, 199],
tableLineWidth: 0.75,
theme: 'grid',
// headStyles: {co},
bodyStyles: {lineColor: [0, 0, 0]},
styles: {
font: 'Adria Slab W00 Medium', // <-- custom font
fontStyle: 'normal',
fontSize: data.fontSize,
overflow: 'linebreak'
},
})
doc.save('somename.pdf');
}
})
)
}
从.ttf字体文件生成js文件(在线使用字体转换器)
在您的服务文件夹中创建font.ts文件
export const fontString : string ="AAEAAA"; <-- 将生成文件中的所有字符串粘贴到此处
import {fontString} from "./font";
doc.addFileToVFS("AdriaSlabW00Medium.ttf", fontString);
doc.addFont("AdriaSlabW00Medium.ttf", "Adria Slab W00 Medium", "normal");
doc.setFont('Adria Slab W00 Medium', 'normal');
我尝试从 service 生成带有希腊字符的 pdf。 在我的本地机器上,它工作得很好。但在真实服务器上我收到错误
sPDF PubSub Error Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded. DOMException: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
.ttf 文件在服务文件夹中
我从我的组件调用这个函数。 服务代码是:
...//some imports
public printSomeData(data: any) {
// getting data to the parse
doc.addFileToVFS('Adria Slab W00 Medium.ttf')
doc.addFont('Adria Slab W00 Medium.ttf', 'Adria Slab W00 Medium', 'normal')
doc.setFont('Adria Slab W00 Medium', 'sans-serif')
doc.setFontSize(data.fontSize)
let body = []
// generate body code
autoTable(doc,{
head: [head],
body: body,
tableLineColor: [189, 195, 199],
tableLineWidth: 0.75,
theme: 'grid',
// headStyles: {co},
bodyStyles: {lineColor: [0, 0, 0]},
styles: {
font: 'Adria Slab W00 Medium', // <-- custom font
fontStyle: 'normal',
fontSize: data.fontSize,
overflow: 'linebreak'
},
})
doc.save('somename.pdf');
}
})
)
}
从.ttf字体文件生成js文件(在线使用字体转换器)
在您的服务文件夹中创建font.ts文件
export const fontString : string ="AAEAAA"; <-- 将生成文件中的所有字符串粘贴到此处
import {fontString} from "./font"; doc.addFileToVFS("AdriaSlabW00Medium.ttf", fontString); doc.addFont("AdriaSlabW00Medium.ttf", "Adria Slab W00 Medium", "normal"); doc.setFont('Adria Slab W00 Medium', 'normal');