{
j=k*2;
high = digest[k] /16;
low = digest[k] %16;
if (high >=10)
{
num[j]= (unsigned char)(high-10+'A');
}
else
{
num[j]= (unsigned char)(high+'0');
}
if (low >=10)
{
num[j+1]= (unsigned char)(low-10+'A');
}
else
{
num[j+1]= (unsigned char)(low+'0');
}
}
switch (num[tempm])
{ case '0': wf[i].line=55;break;
case '1': wf[i].line=1;break;
case '2': wf[i].line=3;break;
case '3': wf[i].line=4;break;
case '4': wf[i].line=6;break;
case '5': wf[i].line=7;break;
case '6': wf[i].line=9;break;
case '7': wf[i].line=10;break;
case '8': wf[i].line=11;break;
case '9': wf[i].line=20;break;
case 'A': wf[i].line=23;break;
case 'B': wf[i].line=25;break;
case 'C': wf[i].line=26;break;
case 'D': wf[i].line=27;break;
case 'E': wf[i].line=39;break;
case 'F': wf[i].line=43;break;
}
if ((num[tempm+1]>'8') && (num[tempm+2]>'8') && (num[tempm+3]>'8'))
{wf[i].color=RGB(255,255,255);}
if ((num[tempm+1]>'8') && (num[tempm+2]>'8') && (num[tempm+3]<='8'))
{wf[i].color=RGB(255,255,254);}
if ((num[tempm+1]>'8') && (num[tempm+2]<='8') && (num[tempm+3]>'8'))
{wf[i].color=RGB(255,254,255);}
if ((num[tempm+1]>'8') && (num[tempm+2]<='8') && (num[tempm+3]<='8'))
{wf[i].color=RGB(255,254,254);}
if ((num[tempm+1]<='8') && (num[tempm+2]>'8') && (num[tempm+3]>'8'))
{wf[i].color=RGB(254,255,255);}
if ((num[tempm+1]<='8') && (num[tempm+2]>'8') && (num[tempm+3]<='8'))
{wf[i].color=RGB(254,255,254);}
if ((num[tempm+1]<='8') && (num[tempm+2]<='8') && (num[tempm+3]>'8'))
{wf[i].color=RGB(254,254,255);}
if ((num[tempm+1]<='8') && (num[tempm+2]<='8') && (num[tempm+3]<='8'))
{wf[i].color=RGB(254,254,254);}
}
(3) 提取已嵌入水印并检测水印。
font.AttachDispatch (sel.GetFont());
font.GetUnderlineColor();
font.GetUnderline();
tempsum=tempsum+m;
for (i=m;i>=1;i--)
{
sel.MoveLeft(COleVariant((short)1),COleVariant((short)1),COleVariant((short)1));
if ((font.GetUnderlineColor()!=wf[i].color) || (font.GetUnderline()!=wf[i].line))
{
tempwrong=m-2*i+1;
if (tempwrong>0)
{sel.MoveLeft(COleVariant((short)1),COleVariant((short)(tempwrong)),COleVariant((short)1));
sel.MoveLeft(COleVariant((short)1),COleVariant((short)1),COleVariant((short)0));
sel.MoveLeft(COleVariant((short)1),COleVariant((short)1),COleVariant((short)1));
fontwrong.AttachDispatch(sel.GetFont());
fontwrong.SetStrikeThrough(1); 基于WORD文档的防篡改水印系统设计与实现(12):http://www.youerw.com/jisuanji/lunwen_1627.html