****彩印管理系统部署及开发心得

1.采用combox读取数据库客户信息的控件,需要安装offcie,否则无法启动项目连接数据库。

2.客户端安装office 2007,也能正常打印文字。如果把图片也指定到单元格打印或输出,就必须再装office2003。(后经过完善了打印类,office2007也可以指定图片了)

3.EPSON针式打印,自定义纸张,对win7 64位可能无效,需要安装在XP电脑上面,然后其他电脑共享这台打印机。

 

开发心得:

ExcelHelper.cs有关图片插入在系统安装office2003和ofice2007引发的插入位置不对的解决方案

具体来说,就是用Shapes.AddPicture方法替代pics.Insert方法。

经过测试,发现Shapes.AddPicture支持office2003和office2007两种系统环境下图片插入指定单元格位置

 

 

public bool InsertPicture(string RangeName, string PicturePath, float PictuteWidth, float PictureHeight)
{
try
{

 

m_xlCells = m_xlSheet.get_Range(RangeName, m_objOpt);
m_xlCells.Select();

 

//************* 使用picture.Insert方法插入图片 仅OFFICE2003版本支持 ***************************

 

//Excel.Pictures pics = (Excel.Pictures)m_xlSheet.Pictures(m_objOpt);
//pics.Insert(PicturePath, m_objOpt);

 

//****************使用下列AddPicture方法插入图片 OFFICE2003和OFFICE2007版本 ************************************************
float PicLeft, PicTop;//指定图片大小

 

PicLeft = Convert.ToSingle(m_xlCells.Left);
PicTop = Convert.ToSingle(m_xlCells.Top);

 

//控制插入表格的图片大小,设定图片大小和插入的单元格宽高一致

 

//PicWid = Convert.ToSingle(m_xlCells.Width);
//PicHit = Convert.ToSingle(m_xlCells.Height);

 

m_xlSheet.Shapes.AddPicture(PicturePath, MsoTriState.msoFalse, MsoTriState.msoTrue, PicLeft, PicTop, PictuteWidth, PictureHeight);

 

return true;
}
catch (Exception)
{
//如果图片路径有问题,则返回false
return false;
}
finally
{
//カーソルを戻す
System.Windows.Forms.Cursor.Current = Cursors.Default;
}

 

}

 

posted @ 2016-01-04 17:45  唐飞  阅读(216)  评论(0编辑  收藏  举报