加载的dxf文件识别不出中文,怎么设置可以识别出文件的中文
Opened this issue · 5 comments
achuan666 commented
dxf文件已经渲染出来了,但是文件里面的中文以问号线上,请问下怎么设置可以识别中文字符
ieskudero commented
Would be helpful to write the issue in a compatible language :D. Can you share a dxf that I could use to test chinese characters?
swingfer commented
镗孔夹具_A03.zip
This is my model, in Chinese, but when I display it using three-dxf-viewer, some details seem to be missing, as well as garbled characters
swingfer commented
QJvic commented
modify function _getTextGeometry
in src/entites/textEntity
to
_getTextGeometry( entity ) {
let strings = this._getTextStrings( entity );
//TODO: if any string's width exceeds entity.refRectangleWidth we must cut it
let text = strings.join( '' );
// unicode转中文
text = text.replace(/\\u\+([\dA-F]{4})/gi, (match, grp) => {
return String.fromCharCode(parseInt(grp, 16));
});
if( Properties.onBeforeTextDraw ) {
let json = { text: text };
Properties.onBeforeTextDraw( json );
text = json.text;
}
//get size
let textSize = this._getTextHeight( entity );
//generate shape
let shapes = this._font.generateShapes( text, textSize );
return new ShapeGeometry( shapes );
}
and then modify font
in src/example/layer/index.js
to a Chinese font json. This is one can be used and I have tested.
Microsoft_YaHei_Regular.json.zip
run npm run dev
and enjoy yourself.
QJvic commented
By the way, you'd better modify function _getTextHeight
in src/entites/textEntity
to
_getTextHeight( entity ) {
let textSize = 12;
if ( typeof entity.nominalTextHeight !== 'undefined' )
textSize = entity.nominalTextHeight;
else if ( typeof entity.textHeight !== 'undefined' )
textSize = entity.textHeight;
textSize = textSize * 0.8; // downsize the text size to have better layout
return textSize;
}