能否打印时,改变指定文字的字体或大小?(100分)

  • 主题发起人 主题发起人 flyingsea
  • 开始时间 开始时间
F

flyingsea

Unregistered / Unconfirmed
GUEST, unregistred user!
为了保密,当打印文档时,根据用户密码(为数字)改变文中某些文字的表现形式,例如
字体或者大小,这样如果这些文件被非法传播,可以根据特定文字的表现形式的差异,追查到
是谁泄露出去的。请问是否有方法做到,请告之源码,先行谢过!
 
你把他密码直接打在页面上也可以的
 
把密码打在页面上的话我可以把它涂掉或是撕掉,呵,反正需要的内容都在就行了 :)

你的这个保密的思想很不错,值得借鉴 :)

要想改变字体的话,要看你是怎么打印的,是直接往Printer的Canvas上画还是用其它的
报表控件。如果是画Canvas的话,可以设置Canvas的字体、大小等,用报表控件的话就
要看控件的设置了。
 
to thtfsyh:不能往文件加入任何信息,也避免太大改动,以免发觉,销毁证据。
to 教父 :是往Printer Canvas上画,应该如何控制特定的行,列甚至字符,敬请指教!
要求原文件不随之改变。
 
//打印前先读出字体大小
i:=Canvas.Font.Size;
s:=Canvas.Font.Name;
//设置新的字体
Canvas.Font.Size:=16;//字体大小
Canvas.Font.Name:='宋体';//宋体
//恢复原来的字体
Canvas.Font.Size:=i;//字体大小
Canvas.Font.Name:=s;//宋体
 
to panyongze:谢谢你的答案,能否通过Canvas指定特定的行,列或者字符,例如某行某列的第几个汉字
或者已知的汉字?
 
1先按正常输出一部分文字。
2到了输出你要修改的文字时改字体。
3再改回正常字体输出其余部分。
 
panyongze:我如何才能知道已经打印到了需要改变的文字处,例如位置的确定?
敬请不吝赐教!
 
打印程序是不是你的呀!
 
将文件读入一个TStringList中,然后
for i:=0 to sl.count-1do

begin

s:=sl.strings;
if i=指定的一行 then

begin

Printer.Canvas.Font:=需要的字体;//还可以进行进一步的设置,详情看帮助
end
else

begin

Printer.Canvas.Font:=正常的字体;
end;

开始打印;
end;
 
再次请教:如何区分那个是汉字和标点符号?它们都占有两个字节,第一字节都大于127,是否不同
的输入法,对应的ASCII码不同,那可怎么办呢?
 
是两个字节都大于127。
ASCII码与输入法没有关系,它是固定的。
 
TO 教父

怪我没说清楚!我的意思是如何把汉字和标点符号区分开来,因为改变对标点符号来说
不是那么明显,必须保证是对汉字进行字体或大小的操作,而不是标点符号。
再次麻烦您。BY THE WAY 访问了您的主页,很好!以后多给您捧场,但我可是个菜鸟哦。
 
如果你的标点符号是全角的话就很困难了,没有什么特别的方法来区别它们,除非你找出
标点符号在哪个区才行,好麻烦的,我也不知道怎么做。
其实我觉得没有太大的必要要把标点和文字区分开来处理,反正标点符号又不明显,处不
处理都是一样的话,那就处理一下也无所谓了,你说是不是? :)
 
to 教父:
说的也是,我再想想办法。谢谢你的指点!
同时也谢谢panyongze、thtfsyh的关注!
分数嘛,每人一点,如何?
 
后退
顶部