代码之家  ›  专栏  ›  技术社区  ›  galactica

如何将文本从Tcl/Tk库的Canvas对象生成postscript文件?

  •  1
  • galactica  · 技术社区  · 16 年前

    我已经被这个问题困扰了好几天了:

    wm geometry . +0+0
    wm resizable . false false
    set wtitle "Drawing Chinese Character"
    frame .frm -width $pad_width -height $pad_height -relief raised -bd 2
    canvas .p0 -width $pad_width -height $pad_height -relief raised -bd 0 
    .p0 create rectangle 0 0 $pad_width $pad_height -outline gray -fill white -width 0 
    .p0 create text $akx $aky -text "\u9177" -font -Adobe-Times-Bold-R-Normal-*-$fontsize-*  
    .p0 create line 0 0 $pad_width $pad_height -fill red -width 2 -arrow last
    pack .p0 -in .frm -fill both
    pack .frm -side bottom 
    
    update;
    .p0 postscript -fontmap fontMap -file "char.ps"
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Donal Fellows    16 年前

    问题是在生成的编码中对许多UNICODE字符的处理是不完整的(一个bug!)。尤其是这个角色 \u9177 未定义(在 mkpsenc.tcl 在Tk安装的库目录中) 和

    此外,解决这个问题非常棘手,因为在核心拉丁字母表之外,有必要注意字形和字符之间的映射。我们欢迎代码的贡献来解决这个问题,但这很困难。(如果我们能降低所有的复杂性,把UTF-8发送到打印机上,那将是非常好的;从我们的角度来看,这将一次性解决问题。但我不知道这在一般情况下是否可行。)

    恐怕不是你想要的答案。