2、经过简单测试,发现上述方法果然只能实现基本的文字转图片功能,无法换行,然后搜到一篇博文java文字转换成图片输出,算是一个比较完整的demo了,笔者的最终代码就是在此文代码的基础上修改而成,此demo中的文字也就一行不到的文字,所以无法看到换行的效果
3、刚开始打出来的图片上文字是方块乱码,解决方法是先在jdk目录下添加相应字体,如果依然乱码,要修改ide编辑器bin目录下的配置文件
4、为了实现真正的换行效果,笔者在drawstring方法外围加了一个for循环,就可以实现换行效果
5、如果文字过多的话,可能一张图片放不下,之前的做法是图片的高度不固定,根据文字的行数来确定,发现那样做的话,文字非常多的话图片就非常长,所以还是要生成多张图片,图片的张数就通过文字的总行数除以每张图片(固定宽高)的行数来得到
6、如果一行文字过多的话,超过图片宽度的文字会被隐藏掉,所以需要提前对文字进行处理,使用集合list来处理,先获取每个字的宽度,再获取每行能放多少字,再判断如果一行文字大于每行能存放的字数时,就进行切割处理
public class Test {/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
JFrame kkk = new lll()
}
}
class lll extends JFrame{
public lll(){
this.setTitle("test")
this.setSize(500,400)
this.setVisible(true)
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g)
g.drawLine(10, 10, 100, 100)
}
}