如何使用户可以自定义他需要打印的文本格式,包括字体的颜色与大小,以及需要从数据库中所调出来哪些数据,还有设置打印各个文本框出现的位置.具体可以描述为:用户在自定义打印模板页面上,通过添加和删除类似label控件这样的小控件(在自定义打印模板页面上可以直接找到)来调出数据库中用户所要打印的那部分数据,然后用户可以通过拖动该控件在"自定义打印模板页面"上的位置来实现简单的排版.如果你那边有类似这样的实例的话,给个链接让小弟参考一下也行.
本问题的目的,重在拓展思路,因为我暂时还没有得到解决该问题的相应办法.

解决方案 »

  1.   

    刚好博客源有这方面的讨论
    地址:http://www.cnblogs.com/Yahong111/archive/2007/10/11/921269.html
      

  2.   

    可以通过使用excel/word模板来进行打印,今天刚试了一个,希望能帮到你~!
    string strWordTemplate = Server.MapPath("../model/test.doc");//你模板所存放的路径(test.doc是通过书签方式来制定的word模板)
    PrintPreview(strWordTemplate);
    private void PrintPreview(string path)
    {  
    WordApplication word = null;
    if (word == null)  
    {  
    word = new WordApplication();  
    }  
    object oMissing = System.Reflection.Missing.Value;   //这个东西找了好久,不像操作Excel,用Type.mising还不行.  
    object path1 = (object)path;  
    Document doc = null;  
    doc = word.Documents.OpenOld(ref path1, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);  
    #region 替换test.doc模板中的书签  
    object Name = "testid";  
    Book bm = doc.Books.get_Item(ref Name);  
    bm.Range.Text = "1111";  
    Name = "testtitle";  
    bm = doc.Books.get_Item(ref Name);  
    bm.Range.Text = "2222";  
    Name = "testcontent";  
    bm = doc.Books.get_Item(ref Name);  
    bm.Range.Text = "3333";  
    Name = "testtype";  
    bm = doc.Books.get_Item(ref Name);  
    bm.Range.Text = "4444";  
    Name = "testcreatedate";  
    bm = doc.Books.get_Item(ref Name);  
    bm.Range.Text = "5555";  
    #endregion  
    word.Visible = true; 
    object fn = (object)Server.MapPath("temple.doc");
    doc.SaveAs(ref fn, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
    doc.Close(ref oMissing, ref oMissing, ref oMissing);
    // word.Quit(ref oMissing, ref oMissing, ref oMissing);
    // word=null;
    // Response.Redirect("temple.doc");//直接打开用ie打开另存的文件,然后可直接调用ie里的打印功能
    doc=word.Documents.OpenOld(ref fn, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
    doc.PrintPreview();

    }