java根据模板修改内容后,生成word,修改后内容中文乱码

Java code
package com.sunyard.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class OperatorRTF {

    /**
     * 字符串转换为rtf编码
     *
     * @param content
     * @return
     */
    public String strToRtf(String content) {

        try {
            System.out.println(content);
            content=new String(content.getBytes(),"GB2312");
            System.out.println(content);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        char[] digital = "0123456789ABCDEF".toCharArray();
        StringBuffer sb = new StringBuffer("");
        byte[] bs = null;
        bs = content.getBytes();
        int bit;
        for (int i = 0; i < bs.length; i++) {
            bit = (bs[i] & 0x0f0) >> 4;
            sb.append("\\'");
            sb.append(digital[bit]);
            bit = bs[i] & 0x0f;
            sb.append(digital[bit]);
        }
        return sb.toString();
    }

    /**
     * 替换文档的可变部分
     *
     * @param content
     * @param replacecontent
     * @param flag
     * @return
     */
    public String replaceRTF(String content, String replacecontent, int flag) {
        String rc = strToRtf(replacecontent);
        String target = "";
        System.out.println(rc);
        if (flag == 0) {
            target = content.replace("$timetop$", rc);
        }
        if (flag == 1) {
            target = content.replace("$info$", rc);
        }
        if (flag == 2) {
            target = content.replace("$idea$", rc);
        }
        if (flag == 3) {
            target = content.replace("$advice$", rc);
        }
        if (flag == 4) {
            target = content.replace("$infosend$", rc);
        }
        return target;
    }

    /**
     * 获取文件路径
     *
     * @param flag
     * @return
     */
    public String getSavePath() {

        String path = "D:\\";
        File fDirecotry = new File(path);
        if (!fDirecotry.exists()) {
            fDirecotry.mkdirs();
        }
        return path;
    }

    /**
     * 半角转为全角
     */
    public String ToSBC(String input) {
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 32) {
                c[i] = (char) 12288;
                continue;
            }
            if (c[i] < 127) {
                c[i] = (char) (c[i] + 65248);
            }
        }
        return new String(c);
    }

    public void rgModel(String username, String content) {
        /* 构建生成文件名 targetname:12时10分23秒_username_记录.rtf */
        Date current = new Date();

        SimpleDateFormat sdf = new java.text.SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss");

        String targetname = sdf.format(current).substring(11, 13) + "时";
        targetname += sdf.format(current).substring(14, 16) + "分";
        targetname += sdf.format(current).substring(17, 19) + "秒";
        targetname += "_" + username + "_记录.doc";
       
        /* 字节形式读取模板文件内容,将结果转为字符串 */
        String strpath = getSavePath();
        String sourname = strpath + "\\" + "档案利用登记单.rtf";
        String sourcecontent = "";
        InputStream ins = null;
        try {
            ins = new FileInputStream(sourname);
            byte[] b = new byte[1024];
            if (ins == null) {
                System.out.println("源模板文件不存在");
            }
            int bytesRead = 0;
            while (true) {
                bytesRead = ins.read(b, 0, 1024); // return final read bytes
                // counts
                if (bytesRead == -1) {// end of InputStream
                    System.out.println("读取模板文件结束");
                    break;
                }
                // convert to string using bytes
                sourcecontent += new String(b, 0, bytesRead);
               
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
       
        /* 修改变化部分 */
        String targetcontent = "";
        /**
         * 拆分之后的数组元素与模板中的标识符对应关系 array[0]:timetop array[1]:info array[2]:idea
         * array[3]:advice array[4]:infosend
         */
        String array[] = content.split("~");

        // 2008年11月27日:更新模板之后时间无需自动填充
        for (int i = 0; i < array.length; i++) {
            if (i == 0) {
                targetcontent = replaceRTF(sourcecontent, array[i], i);
            } else {
                targetcontent = replaceRTF(targetcontent, array[i], i);
            }
        }
        /* 结果输出保存到文件 */
        try {
            FileWriter fw = new FileWriter(getSavePath() + "\\" + targetname,
                    true);
            PrintWriter out = new PrintWriter(fw);
            System.out.println(targetcontent);
            if (targetcontent.equals("") || targetcontent == "") {
                out.println(sourcecontent);
            } else {
                out.println(targetcontent);
            }
            out.close();
            fw.close();
            System.out.println(getSavePath() + "  该目录下生成文件" + targetname
                    + " 成功");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        OperatorRTF oRTF = new OperatorRTF();

        // 被替换内容以"~"符号分割,处理的时候将其拆分为数组即可
        String content = "2008Y10M12D9H-2008Y10M12D6H~idea~look~我们参照检验药品的方法~we";
        oRTF.rgModel("cheney", content);
    }
}




上面的代码是我在网上找到的一种java操作word的方法

java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。

----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。



----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。

      1、采用字节的形式读取rtf模板内容

      2、将可变的内容字符串转为rtf编码

      3、替换原文中的可变部分,形成新的rtf文档

这是原作者的想法,可我在使用过程中,发现替换内容中(我们参照检验药品的方法)这个中文,是不能显示的,在word里,把它转换成了iso-8859-1的编码了,不能正常显示中文,我都不知道应该在哪设置编码,才能让它正常显示,原word模板中的中文,可以正常显示,应该是在读取word模板的时候,把编码方式也读进去了,现在就是想请教一下前辈们,应该如何后,自己修改的那些中文,也可以正常显示呢
问题补充:
汗,这里好象自己不能回复,所以我以这种形式回复。
先感谢一楼,二楼的回答,昨天我有事,请假没上班,所以没能及时回复,先道个歉。
先回答1楼的,在写的时候,我设置编码的话,感觉是无效的,不管我怎么设置,都没用。
再回答2楼的,特别说一下,我试了一下,发现生成的word里,那些修改部分的中文的编码形式改变了,只是还是乱码。后来我把unicode,ISO-8859-1,UTF-8,GB2312,GBK,甚至ASCII都试过了, word里都是不同形式的乱码,就是不出现汉字,真闷,我感觉是在
bs = content.getBytes("unicode");
后,系统后来又默认的把这把转成了ISO-8859-1的形式.
可是
bs = content.getBytes("ISO-8859-1");
我这么设置,word里的汉字是?????
真不知道为什么,要是ISO-8859-1,转ISO-8859-1,应该不会改变的哎
希望高手们,能继续解答,谢谢

问题补充:
汪兆铭,您好,我不知道您一直观注这个问题,我以为要过会才能看到您的回答,所以,现在才刷新了这个页面,不好意思,先道个歉。

现在回到问题中,我照您的意思,
bs = content.getBytes("unicode");
改了一下,然后输入,可是依然不能正常显示中文,是不是,在哪,还需要再转换一次呢?
问题补充:
[email protected]
谢谢,不知道与jdk版本或是什么的没有关系
问题补充:
汪兆铭,您好,我看了一下您发的东西,我发现了问题的所在,竟然是在表格单元格里面的,就替换出来的是乱码,在表格单元格外面的,是可以正常显示的,您可以去试试,把替换的那个,放在表格里,看看,会不会成功,谢谢你的帮助
问题补充:
谢谢您,给我这么多的帮助,那应该是我的那个rtf模板的问题了,真的很感谢,谢谢,谢谢,再谢谢

回答: java根据模板修改内容后,生成word,修改后内容中文乱码

  1. strToRtf方法中的这句
    bs = content.getBytes();
    换成

    bs = content.getBytes("unicode");

    这句

ANSI编码的文件读取后转UNICODE编码的字符串中文乱码

  1. Q
    ANSI编码的文件读取后转UNICODE编码的字符串中文乱码
    一个ANSI编码的文件,都取内容后用MultiByteToWideChar转UNICODE编码的字符串,结果中文乱码,VC2013
    wstring CtStringConvert::MBCS_Unicode(char* s, const int& is)
    {
    int iUnicodeLen = ::MultiByteToWideChar(CP_ACP,
    0,
    s,
    is,
    NULL,
    0);
    wchar_t * pUnicode = new  wchar_t[iUnicodeLen + 1];
    ::memset(pUnicode, 0, (iUnicodeLen + 1) * sizeof(wchar_t));
    ::MultiByteToWideChar(CP_ACP,
    0,
    s,
    is,
    pUnicode,
    iUnicodeLen);
    wstring  w;
    w = (wchar_t*)pUnicode;
    delete  pUnicode;

    return  w;
    }
  2. A
    中文你要考虑它用的是UTF8还是GB2312编码等。才能再对应codepage转换

java 生成word文档并且在线预览的问题

  1. Q
      我遇到了这样一个棘手问题,请求各位帮助。
      需求:生成有固定格式的word文档(文字报告类型),然后再将该word文档实现在线预览。
      我想到的解决办法是先利用freemarker模板生成word(网上盛行),然后再用jodconverter将word转为pdf,然后再用swftools转换pdf为swf,用flexpaper实现在线预览。然后问题出现了,用freemarker生成的word本质是wordml类型的,无法转化为pdf,大家有没有什么好的建议,请不吝赐教。
    问题补充:感谢各位的回答,由于客户需求,生成的word是要存档的,还得供客户下载。所以我生成word这步是必须的,至于在线预览经过测试已经没有任何问题了。我迫切想知道的是生成word的方法。大家可能也研究过,通过模板生成的word本质是wordml的,用ms word打开没有区别,但是用OOo就不一样了。大家有什么建议么。
    问题补充:jobar 写道用Apache POI library不行吗?直接用POI操作word模板问题解决了
    问题补充:forfelicity 写道将word文档转成html,直接显示
    谢谢
    问题补充:谢谢你的思路
  2. A
    用Apache POI library不行吗?

请问:用java如何将word中的内容提取出来?

  1. Q
    请问:用java如何将word中的内容提取出来?
  2. A
    用POI就可以提取word里的中文呀。

怎么样使模板页中的内容页生成HTML元素时name值不改变

  1. Q
    在net中使用了模板页,经常内容页生成的ID,和name值都会改变,看了网上资料在控件上加上属性 ClientIDMode="Static" ,ID的值就不会变化,但是name的值还是会变,
    如下:
    未加属性 
    <asp:Button ID="btnSave" runat="server" Text="Button"  />
    页面的html 
    <input type="submit" name="ctl00$ContentPlaceHolder1$btnSave" value="Button" id="ContentPlaceHolder1_btnSave" />

    加了属性  ClientIDMode="Static"
    <asp:Button ID="btnSave" runat="server" Text="Button" ClientIDMode="Static" /> 
    页面的html
    <input type="submit" name="ctl00$ContentPlaceHolder1$btnSave" value="Button" id="btnSave" /> 

    但是它的name的值还是会变,在使用模板页或者是用户控件怎么保证生成的html不会变化,加上属性 ClientIDMode="Static" 只是保证ID的值不会变化,请各位高手指教!!
  2. A
    不知道你要这些name做什么
    服务器端btnSave.UniqueID就是name的值

用freemarker生成word文档,文档打开报错,求高手`

  1. Q
    我用freemarker生成word文档,文档打开报错,用UE打开文档后发现文档没有写完,如下:
    <w:t>文件测试</w:t>
    </w:r>
    </w:p>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRDefault="00BA541E"/>
    <w:tbl>
    <w:tblPr>
    <w:tblW w:w="0" w:type="auto"/>
    <w:tblBorders>
    <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="

    写到color那就没了,为什么?
    这个是java代码:
    package com.feifei.test;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.io.Writer;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import freemarker.template.Configuration;
    import freemarker.template.ObjectWrapper;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    
    public class CreateWordDemo {   
    
    		private Configuration configuration = null;
    	 
    		public CreateWordDemo() {
    			configuration = new Configuration();
    			configuration.setDefaultEncoding("utf-8");
    		}
    	 
    		public void createDoc() {
    			//要填入模本的数据文件
    			Map dataMap=new HashMap();
    			getData(dataMap);
    			//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
    			//这里我们的模板是放在com.havenliu.document.template包下面
    			configuration.setClassForTemplateLoading(this.getClass(), "/com/feifei/test/template");
    			Template t=null;
    			try {
    				//test.ftl为要装载的模板
    				t = configuration.getTemplate("test.ftl");
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			//输出文档路径及名称
    			File outFile = new File("D:/tmp/outFile.doc");
    			Writer out = null;
    			try {
    				out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
    			} catch (FileNotFoundException e1) {
    				e1.printStackTrace();
    			} catch (UnsupportedEncodingException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	 
    	        try {
    				t.process(dataMap,out,ObjectWrapper.BEANS_WRAPPER);
    			} catch (TemplateException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	 
    		/**
    		 * 注意dataMap里存放的数据Key值要与模板中的参数相对应
    		 * @param dataMap
    		 */
    		 private void getData(Map dataMap)
    		  {
    			 
    			  dataMap.put("remark", "这是测试备注信息");
    			  List table=new ArrayList();
    			  
    			  PersonEntity p1 = new PersonEntity();
    			  p1.setName("yaofeihu");
    			  p1.setXingzuo("tianxie");
    			  
    			  table.add(p1);
    			  
    			  dataMap.put("table", table);
    			  
    		  }  
    		 
    		 public static void main(String[] args) {
    			CreateWordDemo c = new CreateWordDemo();
    			c.createDoc();
    		}
    
    }
    
    
    


    下面这个是模板文件
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?mso-application progid="Word.Document"?>
    <w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
    <w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
    <o:DocumentProperties>
    <o:Author>feihu yao</o:Author>
    <o:LastAuthor>feihu yao</o:LastAuthor>
    <o:Revision>2</o:Revision>
    <o:TotalTime>1</o:TotalTime>
    <o:Created>2014-10-22T14:55:00Z</o:Created>
    <o:LastSaved>2014-10-22T14:55:00Z</o:LastSaved>
    <o:Pages>1</o:Pages>
    <o:Words>8</o:Words>
    <o:Characters>46</o:Characters>
    <o:Company>Hewlett-Packard Company</o:Company>
    <o:Lines>1</o:Lines>
    <o:Paragraphs>1</o:Paragraphs>
    <o:CharactersWithSpaces>53</o:CharactersWithSpaces>
    <o:Version>12</o:Version>
    </o:DocumentProperties>
    <w:fonts>
    <w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    <w:font w:name="Times New Roman">
    <w:panose-1 w:val="02020603050405020304"/>
    <w:charset w:val="00"/>
    <w:family w:val="Roman"/>
    <w:pitch w:val="variable"/>
    <w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="000001FF" w:csb-1="00000000"/>
    </w:font>
    <w:font w:name="宋体">
    <w:altName w:val="SimSun"/>
    <w:panose-1 w:val="02010600030101010101"/>
    <w:charset w:val="86"/>
    <w:family w:val="auto"/>
    <w:pitch w:val="variable"/>
    <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
    </w:font>
    <w:font w:name="Cambria Math">
    <w:panose-1 w:val="02040503050406030204"/>
    <w:charset w:val="01"/>
    <w:family w:val="Roman"/>
    <w:notTrueType/>
    <w:pitch w:val="variable"/>
    <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000000" w:csb-1="00000000"/>
    </w:font>
    <w:font w:name="Calibri">
    <w:panose-1 w:val="020F0502020204030204"/>
    <w:charset w:val="00"/>
    <w:family w:val="Swiss"/>
    <w:pitch w:val="variable"/>
    <w:sig w:usb-0="E00002FF" w:usb-1="4000ACFF" w:usb-2="00000001" w:usb-3="00000000" w:csb-0="0000019F" w:csb-1="00000000"/>
    </w:font>
    <w:font w:name="@宋体">
    <w:panose-1 w:val="02010600030101010101"/>
    <w:charset w:val="86"/>
    <w:family w:val="auto"/>
    <w:pitch w:val="variable"/>
    <w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
    </w:font>
    </w:fonts>
    <w:styles>
    <w:versionOfBuiltInStylenames w:val="7"/>
    <w:latentStyles w:defLockedState="off" w:latentStyleCount="267">
    <w:lsdException w:name="Normal"/>
    <w:lsdException w:name="heading 1"/>
    <w:lsdException w:name="heading 2"/>
    <w:lsdException w:name="heading 3"/>
    <w:lsdException w:name="heading 4"/>
    <w:lsdException w:name="heading 5"/>
    <w:lsdException w:name="heading 6"/>
    <w:lsdException w:name="heading 7"/>
    <w:lsdException w:name="heading 8"/>
    <w:lsdException w:name="heading 9"/>
    <w:lsdException w:name="toc 1"/>
    <w:lsdException w:name="toc 2"/>
    <w:lsdException w:name="toc 3"/>
    <w:lsdException w:name="toc 4"/>
    <w:lsdException w:name="toc 5"/>
    <w:lsdException w:name="toc 6"/>
    <w:lsdException w:name="toc 7"/>
    <w:lsdException w:name="toc 8"/>
    <w:lsdException w:name="toc 9"/>
    <w:lsdException w:name="caption"/>
    <w:lsdException w:name="Title"/>
    <w:lsdException w:name="Default Paragraph Font"/>
    <w:lsdException w:name="Subtitle"/>
    <w:lsdException w:name="Strong"/>
    <w:lsdException w:name="Emphasis"/>
    <w:lsdException w:name="Table Grid"/>
    <w:lsdException w:name="Placeholder Text"/>
    <w:lsdException w:name="No Spacing"/>
    <w:lsdException w:name="Light Shading"/>
    <w:lsdException w:name="Light List"/>
    <w:lsdException w:name="Light Grid"/>
    <w:lsdException w:name="Medium Shading 1"/>
    <w:lsdException w:name="Medium Shading 2"/>
    <w:lsdException w:name="Medium List 1"/>
    <w:lsdException w:name="Medium List 2"/>
    <w:lsdException w:name="Medium Grid 1"/>
    <w:lsdException w:name="Medium Grid 2"/>
    <w:lsdException w:name="Medium Grid 3"/>
    <w:lsdException w:name="Dark List"/>
    <w:lsdException w:name="Colorful Shading"/>
    <w:lsdException w:name="Colorful List"/>
    <w:lsdException w:name="Colorful Grid"/>
    <w:lsdException w:name="Light Shading Accent 1"/>
    <w:lsdException w:name="Light List Accent 1"/>
    <w:lsdException w:name="Light Grid Accent 1"/>
    <w:lsdException w:name="Medium Shading 1 Accent 1"/>
    <w:lsdException w:name="Medium Shading 2 Accent 1"/>
    <w:lsdException w:name="Medium List 1 Accent 1"/>
    <w:lsdException w:name="Revision"/>
    <w:lsdException w:name="List Paragraph"/>
    <w:lsdException w:name="Quote"/>
    <w:lsdException w:name="Intense Quote"/>
    <w:lsdException w:name="Medium List 2 Accent 1"/>
    <w:lsdException w:name="Medium Grid 1 Accent 1"/>
    <w:lsdException w:name="Medium Grid 2 Accent 1"/>
    <w:lsdException w:name="Medium Grid 3 Accent 1"/>
    <w:lsdException w:name="Dark List Accent 1"/>
    <w:lsdException w:name="Colorful Shading Accent 1"/>
    <w:lsdException w:name="Colorful List Accent 1"/>
    <w:lsdException w:name="Colorful Grid Accent 1"/>
    <w:lsdException w:name="Light Shading Accent 2"/>
    <w:lsdException w:name="Light List Accent 2"/>
    <w:lsdException w:name="Light Grid Accent 2"/>
    <w:lsdException w:name="Medium Shading 1 Accent 2"/>
    <w:lsdException w:name="Medium Shading 2 Accent 2"/>
    <w:lsdException w:name="Medium List 1 Accent 2"/>
    <w:lsdException w:name="Medium List 2 Accent 2"/>
    <w:lsdException w:name="Medium Grid 1 Accent 2"/>
    <w:lsdException w:name="Medium Grid 2 Accent 2"/>
    <w:lsdException w:name="Medium Grid 3 Accent 2"/>
    <w:lsdException w:name="Dark List Accent 2"/>
    <w:lsdException w:name="Colorful Shading Accent 2"/>
    <w:lsdException w:name="Colorful List Accent 2"/>
    <w:lsdException w:name="Colorful Grid Accent 2"/>
    <w:lsdException w:name="Light Shading Accent 3"/>
    <w:lsdException w:name="Light List Accent 3"/>
    <w:lsdException w:name="Light Grid Accent 3"/>
    <w:lsdException w:name="Medium Shading 1 Accent 3"/>
    <w:lsdException w:name="Medium Shading 2 Accent 3"/>
    <w:lsdException w:name="Medium List 1 Accent 3"/>
    <w:lsdException w:name="Medium List 2 Accent 3"/>
    <w:lsdException w:name="Medium Grid 1 Accent 3"/>
    <w:lsdException w:name="Medium Grid 2 Accent 3"/>
    <w:lsdException w:name="Medium Grid 3 Accent 3"/>
    <w:lsdException w:name="Dark List Accent 3"/>
    <w:lsdException w:name="Colorful Shading Accent 3"/>
    <w:lsdException w:name="Colorful List Accent 3"/>
    <w:lsdException w:name="Colorful Grid Accent 3"/>
    <w:lsdException w:name="Light Shading Accent 4"/>
    <w:lsdException w:name="Light List Accent 4"/>
    <w:lsdException w:name="Light Grid Accent 4"/>
    <w:lsdException w:name="Medium Shading 1 Accent 4"/>
    <w:lsdException w:name="Medium Shading 2 Accent 4"/>
    <w:lsdException w:name="Medium List 1 Accent 4"/>
    <w:lsdException w:name="Medium List 2 Accent 4"/>
    <w:lsdException w:name="Medium Grid 1 Accent 4"/>
    <w:lsdException w:name="Medium Grid 2 Accent 4"/>
    <w:lsdException w:name="Medium Grid 3 Accent 4"/>
    <w:lsdException w:name="Dark List Accent 4"/>
    <w:lsdException w:name="Colorful Shading Accent 4"/>
    <w:lsdException w:name="Colorful List Accent 4"/>
    <w:lsdException w:name="Colorful Grid Accent 4"/>
    <w:lsdException w:name="Light Shading Accent 5"/>
    <w:lsdException w:name="Light List Accent 5"/>
    <w:lsdException w:name="Light Grid Accent 5"/>
    <w:lsdException w:name="Medium Shading 1 Accent 5"/>
    <w:lsdException w:name="Medium Shading 2 Accent 5"/>
    <w:lsdException w:name="Medium List 1 Accent 5"/>
    <w:lsdException w:name="Medium List 2 Accent 5"/>
    <w:lsdException w:name="Medium Grid 1 Accent 5"/>
    <w:lsdException w:name="Medium Grid 2 Accent 5"/>
    <w:lsdException w:name="Medium Grid 3 Accent 5"/>
    <w:lsdException w:name="Dark List Accent 5"/>
    <w:lsdException w:name="Colorful Shading Accent 5"/>
    <w:lsdException w:name="Colorful List Accent 5"/>
    <w:lsdException w:name="Colorful Grid Accent 5"/>
    <w:lsdException w:name="Light Shading Accent 6"/>
    <w:lsdException w:name="Light List Accent 6"/>
    <w:lsdException w:name="Light Grid Accent 6"/>
    <w:lsdException w:name="Medium Shading 1 Accent 6"/>
    <w:lsdException w:name="Medium Shading 2 Accent 6"/>
    <w:lsdException w:name="Medium List 1 Accent 6"/>
    <w:lsdException w:name="Medium List 2 Accent 6"/>
    <w:lsdException w:name="Medium Grid 1 Accent 6"/>
    <w:lsdException w:name="Medium Grid 2 Accent 6"/>
    <w:lsdException w:name="Medium Grid 3 Accent 6"/>
    <w:lsdException w:name="Dark List Accent 6"/>
    <w:lsdException w:name="Colorful Shading Accent 6"/>
    <w:lsdException w:name="Colorful List Accent 6"/>
    <w:lsdException w:name="Colorful Grid Accent 6"/>
    <w:lsdException w:name="Subtle Emphasis"/>
    <w:lsdException w:name="Intense Emphasis"/>
    <w:lsdException w:name="Subtle Reference"/>
    <w:lsdException w:name="Intense Reference"/>
    <w:lsdException w:name="Book Title"/>
    <w:lsdException w:name="Bibliography"/>
    <w:lsdException w:name="TOC Heading"/>
    </w:latentStyles>
    <w:style w:type="paragraph" w:default="on" w:styleId="a">
    <w:name w:val="Normal"/>
    <wx:uiName wx:val="正文"/>
    <w:rsid w:val="00061BCE"/>
    <w:pPr>
    <w:widowControl w:val="off"/>
    <w:jc w:val="both"/>
    </w:pPr>
    <w:rPr>
    <wx:font wx:val="Calibri"/>
    <w:kern w:val="2"/>
    <w:sz w:val="21"/>
    <w:sz-cs w:val="22"/>
    <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
    </w:rPr>
    </w:style>
    <w:style w:type="character" w:default="on" w:styleId="a0">
    <w:name w:val="Default Paragraph Font"/>
    <wx:uiName wx:val="默认段落字体"/>
    </w:style>
    <w:style w:type="table" w:default="on" w:styleId="a1">
    <w:name w:val="Normal Table"/>
    <wx:uiName wx:val="普通表格"/>
    <w:rPr>
    <wx:font wx:val="Calibri"/>
    <w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
    </w:rPr>
    <w:tblPr>
    <w:tblInd w:w="0" w:type="dxa"/>
    <w:tblCellMar>
    <w:top w:w="0" w:type="dxa"/>
    <w:left w:w="108" w:type="dxa"/>
    <w:bottom w:w="0" w:type="dxa"/>
    <w:right w:w="108" w:type="dxa"/>
    </w:tblCellMar>
    </w:tblPr>
    </w:style>
    <w:style w:type="list" w:default="on" w:styleId="a2">
    <w:name w:val="No List"/>
    <wx:uiName wx:val="无列表"/>
    </w:style>
    <w:style w:type="paragraph" w:styleId="a3">
    <w:name w:val="header"/>
    <wx:uiName wx:val="页眉"/>
    <w:basedOn w:val="a"/>
    <w:link w:val="Char"/>
    <w:rsid w:val="00BA541E"/>
    <w:pPr>
    <w:pBdr>
    <w:bottom w:val="single" w:sz="6" wx:bdrwidth="15" w:space="1" w:color="auto"/>
    </w:pBdr>
    <w:tabs>
    <w:tab w:val="center" w:pos="4153"/>
    <w:tab w:val="right" w:pos="8306"/>
    </w:tabs>
    <w:snapToGrid w:val="off"/>
    <w:jc w:val="center"/>
    </w:pPr>
    <w:rPr>
    <wx:font wx:val="Calibri"/>
    <w:sz w:val="18"/>
    <w:sz-cs w:val="18"/>
    </w:rPr>
    </w:style>
    <w:style w:type="character" w:styleId="Char">
    <w:name w:val="页眉 Char"/>
    <w:basedOn w:val="a0"/>
    <w:link w:val="a3"/>
    <w:rsid w:val="00BA541E"/>
    <w:rPr>
    <w:sz w:val="18"/>
    <w:sz-cs w:val="18"/>
    </w:rPr>
    </w:style>
    <w:style w:type="paragraph" w:styleId="a4">
    <w:name w:val="footer"/>
    <wx:uiName wx:val="页脚"/>
    <w:basedOn w:val="a"/>
    <w:link w:val="Char0"/>
    <w:rsid w:val="00BA541E"/>
    <w:pPr>
    <w:tabs>
    <w:tab w:val="center" w:pos="4153"/>
    <w:tab w:val="right" w:pos="8306"/>
    </w:tabs>
    <w:snapToGrid w:val="off"/>
    <w:jc w:val="left"/>
    </w:pPr>
    <w:rPr>
    <wx:font wx:val="Calibri"/>
    <w:sz w:val="18"/>
    <w:sz-cs w:val="18"/>
    </w:rPr>
    </w:style>
    <w:style w:type="character" w:styleId="Char0">
    <w:name w:val="页脚 Char"/>
    <w:basedOn w:val="a0"/>
    <w:link w:val="a4"/>
    <w:rsid w:val="00BA541E"/>
    <w:rPr>
    <w:sz w:val="18"/>
    <w:sz-cs w:val="18"/>
    </w:rPr>
    </w:style>
    <w:style w:type="table" w:styleId="a5">
    <w:name w:val="Table Grid"/>
    <wx:uiName wx:val="网格型"/>
    <w:basedOn w:val="a1"/>
    <w:rsid w:val="00BA541E"/>
    <w:rPr>
    <wx:font wx:val="Calibri"/>
    </w:rPr>
    <w:tblPr>
    <w:tblInd w:w="0" w:type="dxa"/>
    <w:tblBorders>
    <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    </w:tblBorders>
    <w:tblCellMar>
    <w:top w:w="0" w:type="dxa"/>
    <w:left w:w="108" w:type="dxa"/>
    <w:bottom w:w="0" w:type="dxa"/>
    <w:right w:w="108" w:type="dxa"/>
    </w:tblCellMar>
    </w:tblPr>
    </w:style>
    </w:styles>
    <w:shapeDefaults>
    <o:shapedefaults v:ext="edit" spidmax="5122"/>
    <o:shapelayout v:ext="edit">
    <o:idmap v:ext="edit" data="2"/>
    </o:shapelayout>
    </w:shapeDefaults>
    <w:docPr>
    <w:view w:val="print"/>
    <w:zoom w:percent="100"/>
    <w:doNotEmbedSystemFonts/>
    <w:bordersDontSurroundHeader/>
    <w:bordersDontSurroundFooter/>
    <w:defaultTabStop w:val="420"/>
    <w:drawingGridVerticalSpacing w:val="156"/>
    <w:displayHorizontalDrawingGridEvery w:val="0"/>
    <w:displayVerticalDrawingGridEvery w:val="2"/>
    <w:punctuationKerning/>
    <w:characterSpacingControl w:val="CompressPunctuation"/>
    <w:optimizeForBrowser/>
    <w:validateAgainstSchema/>
    <w:saveInvalidXML w:val="off"/>
    <w:ignoreMixedContent w:val="off"/>
    <w:alwaysShowPlaceholderText w:val="off"/>
    <w:hdrShapeDefaults>
    <o:shapedefaults v:ext="edit" spidmax="5122"/>
    </w:hdrShapeDefaults>
    <w:footnotePr>
    <w:footnote w:type="separator">
    <w:p wsp:rsidR="00F26BE9" wsp:rsidRDefault="00F26BE9" wsp:rsidP="00BA541E">
    <w:r>
    <w:separator/>
    </w:r>
    </w:p>
    </w:footnote>
    <w:footnote w:type="continuation-separator">
    <w:p wsp:rsidR="00F26BE9" wsp:rsidRDefault="00F26BE9" wsp:rsidP="00BA541E">
    <w:r>
    <w:continuationSeparator/>
    </w:r>
    </w:p>
    </w:footnote>
    </w:footnotePr>
    <w:endnotePr>
    <w:endnote w:type="separator">
    <w:p wsp:rsidR="00F26BE9" wsp:rsidRDefault="00F26BE9" wsp:rsidP="00BA541E">
    <w:r>
    <w:separator/>
    </w:r>
    </w:p>
    </w:endnote>
    <w:endnote w:type="continuation-separator">
    <w:p wsp:rsidR="00F26BE9" wsp:rsidRDefault="00F26BE9" wsp:rsidP="00BA541E">
    <w:r>
    <w:continuationSeparator/>
    </w:r>
    </w:p>
    </w:endnote>
    </w:endnotePr>
    <w:compat>
    <w:spaceForUL/>
    <w:balanceSingleByteDoubleByteWidth/>
    <w:doNotLeaveBackslashAlone/>
    <w:ulTrailSpace/>
    <w:doNotExpandShiftReturn/>
    <w:adjustLineHeightInTable/>
    <w:breakWrappedTables/>
    <w:snapToGridInCell/>
    <w:wrapTextWithPunct/>
    <w:useAsianBreakRules/>
    <w:dontGrowAutofit/>
    <w:useFELayout/>
    </w:compat>
    <wsp:rsids>
    <wsp:rsidRoot wsp:val="00BA541E"/>
    <wsp:rsid wsp:val="00061BCE"/>
    <wsp:rsid wsp:val="007560D8"/>
    <wsp:rsid wsp:val="00A46D99"/>
    <wsp:rsid wsp:val="00BA28D3"/>
    <wsp:rsid wsp:val="00BA541E"/>
    <wsp:rsid wsp:val="00E31877"/>
    <wsp:rsid wsp:val="00F26BE9"/>
    </wsp:rsids>
    </w:docPr>
    <w:body>
    <w:p wsp:rsidR="00061BCE" wsp:rsidRDefault="00BA541E">
    <w:r>
    <w:rPr>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>中国银行新一代印鉴管理系统</w:t>
    </w:r>
    </w:p>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRDefault="00BA541E"/>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRDefault="00BA541E">
    <w:r>
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    </w:rPr>
    <w:t>java</w:t>
    </w:r>
    <w:r>
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>生成</w:t>
    </w:r>
    <w:r>
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    </w:rPr>
    <w:t>word</w:t>
    </w:r>
    <w:r>
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>文件测试</w:t>
    </w:r>
    </w:p>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRDefault="00BA541E"/>
    <w:tbl>
    <w:tblPr>
    <w:tblW w:w="0" w:type="auto"/>
    <w:tblBorders>
    <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
    </w:tblBorders>
    <w:tblLook w:val="04A0"/>
    </w:tblPr>
    <w:tblGrid>
    <w:gridCol w:w="4261"/>
    <w:gridCol w:w="4261"/>
    </w:tblGrid>
    <w:tr wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidTr="007560D8">
    <w:tc>
    <w:tcPr>
    <w:tcW w:w="4261" w:type="dxa"/>
    </w:tcPr>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidRDefault="00BA541E">
    <w:pPr>
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    </w:rPr>
    </w:pPr>
    <w:r wsp:rsidRPr="007560D8">
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>姓名</w:t>
    </w:r>
    </w:p>
    </w:tc>
    <w:tc>
    <w:tcPr>
    <w:tcW w:w="4261" w:type="dxa"/>
    </w:tcPr>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidRDefault="00BA541E">
    <w:pPr>
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    </w:rPr>
    </w:pPr>
    <w:r wsp:rsidRPr="007560D8">
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>星座</w:t>
    </w:r>
    </w:p>
    </w:tc>
    </w:tr>
    <#list table as person>
    <w:tr wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidTr="007560D8">
    <w:tc>
    <w:tcPr>
    <w:tcW w:w="4261" w:type="dxa"/>
    </w:tcPr>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidRDefault="00E31877">
    <w:pPr>
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    </w:rPr>
    </w:pPr>
    <w:r wsp:rsidRPr="007560D8">
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman" w:hint="fareast"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>${person.name}</w:t>
    </w:r>
    </w:p>
    </w:tc>
    <w:tc>
    <w:tcPr>
    <w:tcW w:w="4261" w:type="dxa"/>
    </w:tcPr>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRPr="007560D8" wsp:rsidRDefault="00E31877">
    <w:pPr>
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    </w:rPr>
    </w:pPr>
    <w:r wsp:rsidRPr="007560D8">
    <w:rPr>
    <w:rFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>${person.xingzuo}</w:t>
    </w:r>
    </w:p>
    </w:tc>
    </w:tr>
    </#list>
    </w:tbl>
    <w:p wsp:rsidR="00BA541E" wsp:rsidRDefault="00BA541E"/>
    <w:p wsp:rsidR="00A46D99" wsp:rsidRDefault="00A46D99">
    <w:r>
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>备注:</w:t>
    </w:r>
    <w:r wsp:rsidR="00E31877">
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    <wx:font wx:val="宋体"/>
    </w:rPr>
    <w:t>${remark}</w:t>
    </w:r>
    <w:r wsp:rsidR="00E31877">
    <w:rPr>
    <w:rFonts w:hint="fareast"/>
    </w:rPr>
    <w:t>1</w:t>
    </w:r>
    </w:p>
    <w:sectPr wsp:rsidR="00A46D99" wsp:rsidSect="00061BCE">
    <w:pgSz w:w="11906" w:h="16838"/>
    <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
    <w:cols w:space="425"/>
    <w:docGrid w:type="lines" w:line-pitch="312"/>
    </w:sectPr>
    </w:body>
    </w:wordDocument>

  2. A
    java代码第57行输出流处理完后要调用flush把内容刷新上去,并关闭输出流.试试
    out.flush();
    out.close();

如何对生成的文件加密?如何生成word?

  1. Q
    由vc6开发了一个应用程序,功能如下:
    1、收集数据,从某硬件采集设备录取数据
    2、显示数据,在界面上显示相关数据
    3、存储数据,把数据解析后存储为文本文件,内容一般都是数字,大概有30多列,1w多行

    程序已经用了一段时间,现在客户提出新需求:
    1、存储的文件经常被其他人浏览,想对文件进行加密,输入密码后才可以浏览。请问大家有什么样的思路。存二进制的方法不考虑,用户看不懂。
    2、想把存储的文件自动生成word,包含表格和曲线。请问有没有这方面现成的控件或代码,可以导入数据,并配置某些行某些列生成表格,某些列生成曲线并自动按模板生成word文件。好像听过水晶报表之类的东西,不知道是干什么的,可以用在此地吗?

    因为时间紧,麻烦大家帮我想想如何最快完成以上功能。最好不更改以前程序的模块,可以新加功能模块。
  2. A
    表格在word中是很简单的,就几个接口,这些网上都有很多示例代码。
    曲线没做过,可能未必有,这样的话就得你自己绘制再贴图到word里了。
    控件一般来说是将表格展示在你的exe里的,而word里自己有。

调试VB AddIn出错后,Word无法启动

  1. Q
    在调试COM+ AddIn时,在word中创建菜单出错后,Word就无法启动,重新安装office后,还是无法启动,错误为:“无法启动与所选模板相关的程序,或者程序无法使用所选模板”。
  2. A
    参考以下内容,您这种情况可以采用参数/a

    启动开关

    /t模板名称 
    启动 Word,并打开基于非 Normal 模板的新文档。例如:/tMyfax.dot 
    /a 
    启动 Word 并防止自动加载加载项和共用模板(包括 Normal 模板)。开关 /a 还锁定设置文件。 
    /l加载项路径 
    启动 Word,然后加载指定的 Word 加载项。例如:/lSales.dll 
    /m 
    启动 Word 时不运行任何 AutoExec 宏。 
    /m宏名 
    启动 Word,然后运行指定的宏,该 /m 开关还可防止 Word 运行任何 AutoExec 宏。例如:/mSalelead 
    /n 
    启动一个新的 Word 实例,并且不打开任何文档。在任何一个 Word 实例中打开的文档将不作为其他实例的“窗口”菜单中的选项。 
    /w 
    启动一个含有空白文档的新的 Word 实例。任何一个 Word 实例中打开的文档将不作为其他实例的“窗口”菜单中的选项。 
    如果要防止自动运行宏,而不想使用开关,可以在启动 Word 时按下 Shift。如果是从 Microsoft Office 快捷工具栏上启动 Word,请先单击 Office 快捷工具栏上的 Word 程序按钮,然后立即在 Word 启动时按下 Shift。

通过Jasperreports生成word文档问题

  1. Q
    通过Jasperreports生成word文档,生成出来的字体显示是“瀹嬩綋”,“浠垮畫”,“榛戜綋”,分别对应的是宋体、仿宋、黑体,显示出来的文字都是附件中的那个字体。

    通过Jasperreports生成word文档问题


    问题补充:wqdaa 写道有两方面的原因导致的,一种是:你的服务器端,缺少相应的字体;一种是:你需要配置【Pdf Font name】、【Pdf Embedded】、【Pdf Encoding】这三个属性


    我可以确定服务器上是有这些字体的,Pdf Font name与Pdf Encoding是有横线的,我已经把值分别设置成STSong-Light和UniGB-UCS2-H,Pdf Embedded已经选上,Font name分别为宋体、仿宋、黑体
    问题补充:wqdaa 写道你将font-name改成默认值SansSerif,看看会出现乱码吗?

    当设置成SansSerif,没问题,生成出来的是宋体,只要字体为中文就会出现乱码,就字体出现乱码(“瀹嬩綋”,“浠垮畫”,“榛戜綋”),导致office找不到对应的字体显示出来,所有的文字都是附件中看到的那个“办公室”这样的字体。
    问题补充:wqdaa 写道你应用中有没有添加这个iTextAsian.jar ?
    如果没有的话,需要在classpath中添加这个jar包

    这个iTextAsian.jar已经在classpath中,我还把其它中文字体导入ireport,然后再导出一个fonts.jar包放在classpath中。
    问题补充:wqdaa 写道我想起是咋回事了,是你的java端编码不对,你将java端改成utf-8,ireport的编码格式也改成utf-8就能解决乱码的问题了

    感谢你的帮忙,编码都是用utf-8的
  2. A
    我想起是咋回事了,是你的java端编码不对,你将java端改成utf-8,ireport的编码格式也改成utf-8就能解决乱码的问题了

批量修改时想加一个复选框,如果选择后就进行修改

  1. Q
    批量修改时想加一个复选框,如果选择后(值为1)就进行修改,否则就不修改,原来批量修改是可以用,现在加了就不行。

    id=request.Form("id") 
    nid=split(id,",") 
    eid=ubound(nid) 

    che=request("che")
    nche=split(che,",")

    for i=0 to eid
    if nche(i)<>"" and nche(i)=1  then
    -------
    以下为内容代码原来是正常的
    ------------
    end if

    next 

    现在提交后报内部服务器错
  2. A
    不勾选的checkbox是不会回发的,所以你che这个的分割后的数组和id肯定不一致(除非全部勾选了)

    你应该改变思路,checkbox的值为记录的id,一个隐藏的输入控件同时也记录id,这样勾选了checkbox就得到要修改的记录id,遍历checkbox的id数组和隐藏控件的id数组,一致就更新这个id的数据

    如果你不想改变dom结构,你应该放置一个隐藏的域,提交表单时记录所有checkbox的状态,0为未勾选,1为勾选,搜集起来后赋值给这个隐藏域