设为首页
给我留言
首页       关于蓬缘    克隆建站    模版建站    建站流程    建站疑虑    支付方式    网站推广    网站优化    建站学院    联系我们    
蓬缘网络技术工作室真心为您服务!霸州网站建设 + 霸州网页设计 + 霸州企业建站 + 霸州FLASH设计 + 霸州网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十四小时服务热线: 15932615201 13810319167。欢迎来电咨询……霸州网站建设工作室|霸州网站制作|霸州建站|霸州网站改版|霸州企业建站|霸州专业建站|蓬缘网络技术工作室 - 我要网站 - http://www.woyaowangzhan.com……霸州蓬缘网络技术工作室是专业的建站团队,提供专业的霸州建站服务:1、霸州专业网站建设(霸州网站设计)2、霸州网站推广(百度、Google、搜狐、阿里巴巴等)3、霸州网站优化(SEO、百度推广优化)4、霸州域名注册(.com/.cn/.net等)5、霸州虚拟主机(ASP、.net等)6、霸州政府建站7、霸州门户网站…… 现在时间是
建站学堂
 
VB.NET打印设置
[ 2008-9-21 8:58:00 ] 作者: 来源:

  核心提示:...

在处理单据时,遇到有打印的单据。我们需要提供preview的功能。同时对于不同的单据所使用的纸张也各不相同。这就需要我们能对用户的打印设置进行保存。当用户进行print ,preview时再调用先前的设置.


在.NET中关于打印设置M$好象很不友好.感觉使用起来不很爽.


来看一下如何对用户的打印设置进行操作.


首先我这边定义一个基本的关于打印设置的类


/// <summary>
/// 用户自定义页面设置类,要加上可序列化标记,用户保存时,需将设置进行序列化成文件,到时可反序列化
/// </summary>
[Serializable()]
public class UserPageSettings
{
public bool Landscape=true;//横打
public int LeftMargin=0; //左边距
public int RightMargin=0;//右边距
public int BottomMargin=0;//底边距
public int TopMargin=0;//顶边距
public string PageKind;//纸张种类
public int Height=0; //纸高
public int Width=0; //纸宽
}



/// <summary>
/// 加载打印设置
/// </summary>
private void LoadPageSetting()
{
   if(UserSettingPage==true)
   {
    return;
   }
   string pageSettingFile=mLayoutPath+"\\"+System.IO.Path.GetFileNameWithoutExtension(this.mGridLayoutFileName)+"PageSetting.bin";
   if(!File.Exists(pageSettingFile))
    return ;//如果用户没有设置页面属性


//以二进制方式进行序列化
   BinaryFormatter bf=new BinaryFormatter();
   FileStream fs = new FileStream(pageSettingFile, FileMode.Open);
   try
   {


//将上次用户设置进行反序列化.
    UserPageSettings ups=(UserPageSettings)bf.Deserialize(fs);
    PageSettings ps=ultraGridPrintDocument1.DefaultPageSettings;
    ps.Landscape=ups.Landscape;
    ps.Margins.Left=ups.LeftMargin;
    ps.Margins.Right=ups.RightMargin;
    ps.Margins.Top=ups.TopMargin;
    ps.Margins.Bottom=ups.BottomMargin;
    int i=0;


//M$ 可有点恶心.居然设为只读类型,那只能循环一下来获取纸张类型
    for(i=0;i< ps.PrinterSettings.PaperSizes.Count;i++)
    {
     if(ps.PrinterSettings.PaperSizes[i].Kind.ToString()==ups.PageKind)
     {
      break;
     }
    }
    ps.PaperSize=ps.PrinterSettings.PaperSizes[i];
//    PaperSize psize=new PaperSize(ups.PageKind,ups.Width,ups.Height);
//    ps.PaperSize=psize;
    //ultraGridPrintDocument1.PrinterSettings.DefaultPageSettings.PaperSize=psize;
   


   }
   finally
   {
    fs.Close();
   }


}



/// <summary>
/// 保存用户定义的页面设置信息
/// </summary>
private void SavePageSetting()
{
   string pageSettingFile=mLayoutPath+"\\"+System.IO.Path.GetFileNameWithoutExtension(this.mGridLayoutFileName)+"PageSetting.bin";
   BinaryFormatter bf=new BinaryFormatter();
   FileStream fs = new FileStream(pageSettingFile, FileMode.Create);
   try
   {
    UserPageSettings ups=new UserPageSettings();


//获取用户当前打印设置
    PageSettings ps=ultraGridPrintDocument1.DefaultPageSettings;
    ups.Height=ps.PaperSize.Height;
    ups.Width=ps.PaperSize.Width;
    ups.TopMargin=ps.Margins.Top;
    ups.BottomMargin=ps.Margins.Bottom;
    ups.LeftMargin=ps.Margins.Left;
    ups.RightMargin=ps.Margins.Right;
    ups.Landscape=ps.Landscape;
    ups.PageKind=ps.PaperSize.Kind.ToString(); //当前纸张类型如A4等
    bf.Serialize(fs,ups); //序列化到流中.
   }
   catch(Exception ex)
   {
    MessageBox.Show(ex.Message);
   }
   finally
   {
    fs.Close();
   }
}



 
   建站学堂
  ●  ASP编程技术
  ●  PHP编程技术
  ●  JSP编辑技术
  ●  ASP.NET编程技术
  ●  JAVA软件开发
  ●  C#软件开发
  ●  VB.NET软件开发
   网站推广与营销
  ● 网站备案的9个细节问题
  ● 网上注册一个域名的意义
  ● 网站从建设到运营的5点注意
  ● 8种提高网站ALEXA排名的方法
  ● 搜索引擎之间的4个区别
  ● 网站优化基本搜索引擎优化篇
  ● 点评A8音乐商业模式
  ● 5种不可取的网站推广方法
  ● SNS将成四大门户竞争的关键筹码
  ● 企业整站优化的一些技巧
  ● 马化腾创业三问
  ● 站长们每天都要做的工作
   网站优化与排名
  ● 快速提升访问量的方法
  ● 网站优化关键词工具,优化软件,SEO优化工具,SEO优化软件
  ● 总结四点分享我建站失败的经历
  ● 从达人圈到开心人人首谈SNS域名的选择与定位
  ● 良好心态是站长们成功的关键
  ● 浅谈做冷门站的一些心得体会
  ● 小游戏网站经营最重要的是站在用户的角度创新
  ● 关于网站首页打开速度之我见
  ● 谈一次域名解析出错带来的惨痛代价
  ● 我的地方论坛的建站之路经验总结
  ● 千人站长讲座第46期空姐网军哥谈特色社区运营
  ● 浅谈QQ类网站之站长的出路