a级一a一级在线观看_a级在线观看视频_a极毛片_a毛片_全部免费毛片在线播放_全部孕妇丰满孕妇孕交

| 项目咨询 |积分体系 | 加入收藏 | 设为首页 | RSS
您当前的位置:首页 > 市场 > 百科 > 技术 > 夸父专栏

基于RICHVIEW的EMR开发文档九

时间:2013-10-08 20:45:09  来源:  作者:
更多

 http://blog.sina.com.cn/game7788

   夸父
下面代码主要处理删除文档中的文本样式,处理对象包括所有的文本元素,制表符,标记列表等文本类型的元素,对于其它元素不起作用。
在使用此功能时,需要注意的是,当文档中同时存在UNICODE和非UNICODE文本编码时,或者存在不同的语言字符集的非UNICODE文本,那么此功能可能会使部分文本信息丢失,所以使用此功能时最好保证文档中的字符编码格式相同。同时,
这个功能不是普通的编辑操作,因此使用后是不可以撤消的,使用前请务必清除撤消缓冲区。
procedure RemoveFormatting(RVData: TCustomRVData; RemoveMarkers, KeepLinks: Boolean); 
var i, HypertextStyleNo: Integer; 
    UnicodeTo, UnicodeHTo: Boolean; 
  {.............................................................} 
  procedure DoRemoveFormatting(RVData: TCustomRVData); //主要实现方法
  var i, r, c, StyleNo, StyleNoTo: Integer; 
      PB, UnicodeFrom, ThisUnicodeTo: Boolean; 
      table: TRVTableItemInfo; 
  begin 
    for i := RVData.ItemCount-1 downto 0 do begin 
      RVData.GetItem(i).ParaNo := 0; 
      StyleNo := RVData.GetItemStyle(i); 
      case StyleNo of 
        rvsTable: 
          begin 
            table := TRVTableItemInfo(RVData.GetItem(i)); 
            for r := 0 to table.RowCount-1 do 
              for c := 0 to table.ColCount-1 do 
                if table.Cells[r,c]<>nil then 
                  DoRemoveFormatting(table.Cells[r,c].GetRVData); 
          end; 
        rvsListMarker: 
          if RemoveMarkers then begin 
            PB := RVData.PageBreaksBeforeItems[i]; 
            RVData.DeleteItems(i, 1); 
            if i<RVData.ItemCount then begin 
              RVData.GetItem(i).SameAsPrev := False; 
              RVData.GetItem(i).PageBreakBefore := PB; 
            end; 
          end; 
        rvsTab: 
          if RVData.GetRVStyle.TextStyles[ 
            TRVTabItemInfo(RVData.GetItem(i)).TextStyleNo].Jump and KeepLinks then 
            TRVTabItemInfo(RVData.GetItem(i)).TextStyleNo := HypertextStyleNo 
          else begin 
            TRVTabItemInfo(RVData.GetItem(i)).TextStyleNo := 0; 
            RVData.SetItemTag(i, ''); 
          end; 
        1..MaxInt: 
          begin 
            if KeepLinks and RVData.GetRVStyle.TextStyles[StyleNo].Jump then begin 
              ThisUnicodeTo := UnicodeHTo; 
              StyleNoTo := HypertextStyleNo; 
              end 
            else begin 
              ThisUnicodeTo := UnicodeTo; 
              StyleNoTo := 0; 
              RVData.SetItemTag(i, '');              
            end; 
            UnicodeFrom := RVData.GetRVStyle.TextStyles[StyleNo].Unicode; 
            RVData.GetItem(i).StyleNo := StyleNoTo; 
            if UnicodeFrom and not ThisUnicodeTo then begin 
              RVData.GetItem(i).ItemOptions := RVData.GetItem(i).ItemOptions-[rvioUnicode]; 
              RVData.SetItemTextR(i, 
                RVU_UnicodeToAnsi(RVData.GetStyleCodePage(0), RVData.GetItemTextR(i))); 
              end 
            else if not UnicodeFrom and ThisUnicodeTo then begin 
              RVData.GetItem(i).ItemOptions := RVData.GetItem(i).ItemOptions+[rvioUnicode]; 
              RVData.SetItemTextR(i, 
                RVU_AnsiToUnicode(RVData.GetStyleCodePage(0), RVData.GetItemTextR(i))); 
            end; 
          end; 
      end; 
    end; 
  end; 
  {.............................................................} 
begin 
  HypertextStyleNo := 0; 
  if KeepLinks then 
    for i := 0 to RVData.GetRVStyle.TextStyles.Count-1 do 
      if RVData.GetRVStyle.TextStyles[i].Jump then begin 
        HypertextStyleNo := i; 
        break; 
      end; 
  UnicodeTo  := RVData.GetRVStyle.TextStyles[0].Unicode; 
  UnicodeHTo := RVData.GetRVStyle.TextStyles[HypertextStyleNo].Unicode; 
  DoRemoveFormatting(RVData); 
end;
 
上面是主要实现方法,如果要在文档中正式使用此方法,调用下面的代码即可.
  RemoveFormatting(RichViewEdit1.RVData, True, True); 
  NormalizeRichView(RichViewEdit1.RVData);//还原编辑器原始状态,这步很重要,主要起修复作用,可以理解为格式化
  RichViewEdit1.DeleteUnusedStyles(True, True, True); 
  RichViewEdit1.ClearUndo; 
  RichViewEdit1.Format; 
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目更新
栏目热门
主站蜘蛛池模板: 狍和人一级毛片 | 欧美在线一区二区 | 成年人三级毛片 | 成人十八影院在线观看 | 国产精品麻豆一区二区三区 | 老司机福利在线视频 | 国产亚洲视频在线观看 | 黄视频免费观看 | 可以看的毛片网站 | 成人高辣h视频一区二区在线观看 | 日本巨乳中文字幕 | 成人毛片免费观看视频大全 | 国产实拍桑拿会所按摩女技师 | 国产精品久久成人影院 | 国产 欧美日韩 在线播放 | 国产91极品福利手机观看 | 99国产精品久久 | 国产精品成人久久久久久久 | 黄色国产精品 | 99久久国产综合精品女小说 | 成+人+黄+色+免费观看 | 高清一级毛片 | 欧美精品一区二区三区久久 | 国产1区| 国产精品第 | 99精品在线播放 | 欧美成人精品手机在线观看 | 成人三级精品视频在线观看 | vr专区日韩精品中文字幕 | 99精品欧美一区 | 成年毛片| 欧美曰韩免费视频一区 | 黄页网址大全免费观看美女 | 欧美日韩一区二区三区视视频 | 欧洲国产伦久久久久久久 | 看全色黄大色黄女片爽毛片 | 久久久久久久影院 | 人碰人碰人成人免费视频 | 国产欧美一区二区 | 国内视频一区二区 | 成年在线视频免费视频观看 |