当前位置: 首页 > news >正文

在Word里实现禁止复制和选定

自己辛苦写的东西,被人家一个 Ctrl+C 和 Ctrl+V 几秒就易主了,转换成PDF又觉得麻烦。其实Word自身就带有这个功能,而且非常简单。三秒钟你就也会了。(以 Office 2003 为例)
第一步:先打开已编辑的DOC。
第二步:点击“工具 → 文档保护”在右侧边条会看见那样需要你打勾的东西,全部勾上。前面随便勾选一个,最后的那个例外项就被激活了。
第三步:点“是,启动强制保护”然后输入密码。

现在你回头看看你的文件是不是不能修改了呢?任何修改他的企图都会被Word拒绝。但是依然可以选定DOC中的文字什么的,也可以有鼠标右键复制粘贴功能。嘿嘿……问题出在什么地方呢?刚才我们对文本进行了格式设置限制和编辑限制,好象都是用的默认值,你现在把编辑限制的“未做任何更改(只读)”换成“填窗体”试试看,是不是已经不能被选定,并实现了禁止复制和粘贴了呢?
如果是 Office 2007 版本,则在:审阅 → 保护文档 → 限制格式和编辑

如何通过编程实现文档的禁止编辑

ContractedBlock.gif ExpandedBlockStart.gif Code
object sPwd = string.Format("******");

if (this.word.oWordApplic.ActiveDocument.ProtectionType == Word.WdProtectionType.wdNoProtection)
{
    
object missing = Type.Missing;
    
this.word.oWordApplic.ActiveDocument.Protect(Word.WdProtectionType.wdAllowOnlyFormFields, ref missing, ref sPwd, ref missing, ref missing);
}

 

解密的代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
if (this.word.oWordApplic.ActiveDocument.ProtectionType == Word.WdProtectionType.wdAllowOnlyComments)
{
    
this.word.oWordApplic.ActiveDocument.Unprotect(ref sPwd);
}

 

注释:

保护指定文档,防止更改。如果一篇文档处于保护状态,则用户只能进行有限修改,如添加批注、进行修订,或者完成一个窗体。  
注意:如果在使用本方法之前文档已经加以保护,则会导致出错。  
expression.Protect(Type,   NoReset,   Password)  
expression 必需。该表达式返回“应用于”列表中的一个对象。  
Type 必需,特定文档的保护类型。WdProtectionType。   
WdProtectionType   可以是下列   WdProtectionType   常量之一:    
  wdAllowOnlyComments    
  wdAllowOnlyFormFields  ----对应填窗体   
  wdAllowOnlyRevisions    
  wdNoProtection     
 NoReset Variant   类型,可选。如果本参数为   False,则将窗体域重新设置为默认值。如果本参数为   True,而指定文档又是处于保护状态,则保留窗体域原来的值。如果 Type   不是wdAllowOnlyFormFields,则忽略NoReset参数。                                 
Password Variant   类型,可选。特定的文档要求密码来“解除保护”。

转载于:https://www.cnblogs.com/lne818/archive/2008/11/14/1333316.html

相关文章:

  • RAC维护手记08-ASM磁盘组信息查看常用命令
  • 什么是TELNET协议
  • [转]一种革命性的自绘菜单实现
  • 移动端HTML5音频与视频问题及解决方案
  • Ubuntu 14.04 下解决maven访问速度慢问题
  • InstantBoss 让你成为一个自律的人!
  • 处理器调度
  • 亲历:我的IT认证培训之路与技术学习方法(转载)
  • input的行数自动增减
  • PHP学习
  • bzoj2440(莫比乌斯函数)
  • 避免用uedit之类的可以直接看到字符串常量
  • 【Cocos2d-x 017】 多分辨率适配全然解析
  • 我会常回来看看的
  • 没有对比就没有伤害!有一种爸爸叫别人家的爸爸
  • hexo+github搭建个人博客
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Android 控件背景颜色处理
  • angular2开源库收集
  • k8s 面向应用开发者的基础命令
  • React组件设计模式(一)
  • SAP云平台里Global Account和Sub Account的关系
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Swoft 源码剖析 - 代码自动更新机制
  • VUE es6技巧写法(持续更新中~~~)
  • 初识 beanstalkd
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • - 概述 - 《设计模式(极简c++版)》
  • 技术胖1-4季视频复习— (看视频笔记)
  • 简单实现一个textarea自适应高度
  • 力扣(LeetCode)56
  • 聊聊directory traversal attack
  • 使用 Docker 部署 Spring Boot项目
  • 推荐一个React的管理后台框架
  • 微信小程序设置上一页数据
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • #1015 : KMP算法
  • #Linux(make工具和makefile文件以及makefile语法)
  • (6)设计一个TimeMap
  • (ibm)Java 语言的 XPath API
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (三)docker:Dockerfile构建容器运行jar包
  • (四)图像的%2线性拉伸
  • (转)setTimeout 和 setInterval 的区别
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 4.0并行库实用性演练
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .netcore 获取appsettings
  • .NET下的多线程编程—1-线程机制概述
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • ::前边啥也没有
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [flask]http请求//获取请求头信息+客户端信息
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]