2012-07-27 75 views
3

字符串如何呈现一个古老的X11位图字体的字符串?我的意思是类似渲染在X11位图字体

-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-* 

我可以找到xfontsel。我只需要一个命令行工具等,以该字体显示给定的字符串。类似的TrueType字体是行不通的,因为它必须是完美的像素(我试图让每个字母的图像到OCR在该字体的图像)。

回答

3

我不知道是否有是一个命令行工具。但你总是可以滚你自己用的Xlib和C.

有人似乎已经书面a simple X11 C program显示使用Xlib的字符串。改变几行并编译:

gcc -lX11 -o xrenderstring xrenderstring.c 

..应该为你做。

我已经复制了整个程序in this gist(以防它从原始源中消失),修改为带两个参数:1. fontname,2.要呈现的字符串。

所以,你会这样称呼它(当然编译后):

./xrenderstring "-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*" "Quick brown fox" 
+1

好的,谢谢!如果我可以:-),我通常会尝试避免原始的Xlib编码。 – jdm 2012-07-27 10:58:24

1

找到一个hackish的方式。添加以下的〜/ .Xdefaults:

xedit*editWindow*font: -*-lucida-medium-r-normal-*-36-*-*-*-*-*-*-* 

,然后运行

$ xrdb -merge ~/.Xdefaults 
$ xedit 

然后我输入字符串,采取了截屏,并比较其在GIMP。

(原来的X11字体不太合适的人毕竟是我的源使用龙力三世36磅(TTF),但没有抗锯齿,可能奇怪的提示。)

2

要只呈现字符的字体:

  • xfd -fn '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*'
  • xfontsel -pattern '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*'

呈现特定的字符串:

  • xfontsel -pattern '-*-lucida-medium-r-normal-*-34-*-*-*-*-*-*-*' -sample 'The quick brown fox jumps the shark'