八月是一个闷热中有些惊喜的月份,奥运会在北京完美的收场,我的工作却是遇到了一个个奇怪的问题。
问题1
使用javascript的时候需要用到table的rows属性的length属性值,于是在一个函数中连着取值两次,后来页面出错。Table.deleteRow(i);参数非法。
经过了几次的实验后发现,只能取一次table.rows.lenght,一定不要再循环中使用这种取法为变量赋值。或许是因为的页面完全是由javascript拼凑而成,有待进一步研究。从现象上分析是, table.rows.lenght标识的是未改变的长度,这个长度在Table.deleteRow(i)后依然是原来的值,所以循环中继续使用Table.deleteRow(i)参数非法。
问题2
客户有一个十分奇怪的需求,需求不是我做的,但是最终这个模块落到了我的头上。他们要生成批量word文档并提供打印。这个打印不是所见即所得的打印,无法用IE来直接打印,于是我与客户进行了一番争论后最终决定下载一个word文件到本地后打印。
但是word这个东西对于java来说就是一块没有经过细致勘探的土地,java更加青睐于PDF和Excel,于是我又开始了word文件生成的探究。
最后就是:你确定一定要word格式的文件?PDF的更加美观,还能完全按照您的格式来打印
我们要word!
我用rtf可以不?完全兼容的
不,要word!
…………那我保存的时候改扩展名为doc。
Rtf格式的文件中不能使用iText的PdfPTable,所以不能设置行高,这个问题我最后用Table的padding属性来做了最终解决办法,虽然有些流氓,但是对于我这样的江湖派程序员来说,解决问题就是好招式。
顺便抱怨几句iText的那几种Tbale和Cell的搭配,真的有些奇奇怪怪,Rtf中使用PdfPTable就不能实现嵌套Table。