精华内容
下载资源
问答
  • 问题: 想对PDF加密,设置只读权限,让别人能修改我的PDF。 pypdf2的使用:https://www.jianshu.com/p/e3d384e51db9(这个是随便搜...) ... ...给PDF添加水印后,如何设置只读权限呢? (关于PDF添加水印,可以看之...

    问题:

    想对PDF加密,设置只读权限,让别人不能修改我的PDF。

    pypdf2的使用:https://www.jianshu.com/p/e3d384e51db9(这个是随便搜的一篇中文的,其实它就是官方文档翻译了一下。)

    pypdf2官方文档:https://pythonhosted.org/PyPDF2/

     

    给PDF添加水印后,如何设置只读权限呢?

    (关于PDF添加水印,可以看之前的文章:

    https://blog.csdn.net/he99774/article/details/102962731

    答案是:加密。

     

    所以这里用到了pypdf2的加密功能。

    但是pypdf2的加密功能只能设置密码,是不能设置对应的权限的(比如编辑、复印等权限)。

    所以这里修改了pypdf2的源代码来简单的实现PDF文件不可编辑。

     

    具体操作如下。

    1.pypdf2如下路径,有一个pdf.py

    2.修改pdy.py。找到P=-1,修改为P=-3904

    (这里的P代表权限,-3904表示除了阅读外,关闭其他所有权限。更多的参数设置我还没有查,可以自行搜索。)

     

    修改P后,然后正常使用pypdf2的加密函数就可以了。

    加密代码如下:

    from PyPDF2 import PdfFileWriter, PdfFileReader
    
    #给pdf批量加水印
    #input_pdf = 'y8.PDF',输入文件
    #output = 'y8_q1.pdf',输出pdf
    #watermark = 's.pdf'水印文件
    def create_watermark(input_pdf, output, watermark):
        watermark_obj = PdfFileReader(watermark)
        watermark_page = watermark_obj.getPage(0)
        pdf_reader = PdfFileReader(input_pdf)
        pdf_writer = PdfFileWriter()
        # 给所有页面添加水印
        for page_num in range(pdf_reader.getNumPages()):
            print("page:",page_num)
            page = pdf_reader.getPage(page_num)
            if page_num%2 == 0:
                page.mergePage(watermark_page)
            pdf_writer.addPage(page)
    ###这一行是加密,如果只想加密,上面的添加水印都可以删除。
        pdf_writer.encrypt(user_pwd="",owner_pwd="xx1234")  # 设置pdf密码
        # pdf_writer.
        # pdf_writer.encrypt()
        with open(output, 'wb') as out:
            pdf_writer.write(out)

     

    解决方案来源:https://stackoverflow.com/questions/13109867/python-pdf-set-password-protected-print-copy-paste-options

    展开全文
  • 如何将word文件设为编辑?1. 打开word,点击“文件”。2. 接下来,我们可以点击“保护文档”,选择“始终以只读方式打开”,并点击“限制编辑”。这样我们就可以在限制他人对我们文件编辑,同时也可以限制编辑...

    6962667e847a0fc81f19002fa48c89ee.png

    想要文件可以查看,但不能编辑,方法途径有很多。

    如何将word文件设为不可编辑?

    1. 打开word,点击“文件”。

    621beb131f6fca919190047f6c4cbba9.png

    2. 接下来,我们可以点击“保护文档”,选择“始终以只读方式打开”,并点击“限制编辑”。这样我们就可以在限制他人对我们文件的编辑,同时也可以限制编辑的范围。

    99eb6f18b31c28f372db69118ba07158.png

    如何将excel设置为不可编辑?

    1. 打开excel,点击工具栏“审阅”,并设置允许编辑的区域,或是选择“保护工作簿/表”

    3f1cea023e7d1326e3f2c818dc8fad57.png

    2. 我们同样可以打开excel的“信息”寻找“以只读方式打开”

    7a0a4f964875457906554c40b220cddb.png

    以上两种方式对于设置文件的不可编辑,能够有利于防止病毒和提高文件的安全性,但是弊端是,有些系统不兼容,会导致打不开文件的问题出现。目前能够较为流畅的在各个系统打开的文件是PDF,并且PDF本身便是不能够被编辑的;我们可以将文件转为PDF格式,这样便可避免文件打不开的问题出现。

    如何将文件转PDF?

    打开PDF快转,并根据文件格式来选择功能,进行添加和转换。

    a5b181fedb14c925d1b90c9a6195d5c1.png
    展开全文
  • 方法:1、设置文件受信任位置为office设置受信任位置,以后只要文件是在信任位置上的,也就不会再出现只读情况了。(文件-选项-信任中心-信任中心设置-受信任位置)允许网络上的受信任位置,这项选择微软是推荐的,...

    方法:1、打开Word,点击“文件”;2、点击“选项”,再点击“信任中心”;3、点击“信任中心设置”;4、点击“受信任位置”;5、点击允许“网络上的受信任位置”即可。

    41d8b5ee5118a4b7a0848568bd3f1b40.png

    方法:

    1、设置文件受信任位置

    为office设置受信任位置,以后只要文件是在信任位置上的,也就不会再出现只读情况了。(文件-选项-信任中心-信任中心设置-受信任位置)

    a582e9e7c6f1d320d29340cc856a06c3.png

    允许网络上的受信任位置,这项选择微软是不推荐的,除非有特殊用途。

    9578de2d657427594d5dcea910cb2bf4.png

    2、关闭保护视图功能

    c710ba25a8d2f006684b73a45e99b175.png

    直接关闭受保护视图的功能,那这样以后来自Internet、附件、qq•••就不会出现只读情况了。 (文件-选项-信任中心-信任中心设置-受保护的视图)然后自己对应取消复选框就行了。

    其实还有两种特殊情况,word打开也是只读模式。

    第一、word文件或者文件所在的目录为只读。

    4943789bdea158ef639780380b68d283.png

    比如你在光盘中打开word就显示为只读,因为光盘刻录好了就不能再修改了保存了,只能是只读了。

    还有就是给word或word所在的文件夹,系统直接设置为只读。

    这种情况下打开word后在最上面有一个[只读]的标示。你编辑这个word是没有问题的,但是编辑完了是没法保存并覆盖之前的文件的,只能重新命名了。

    推荐教程:《Word教程》

    展开全文
  • 综述 最近在写一个文件系统。 基础架构写了一段时间了,基本差不多了。...如何qtextedit怎么设置部分文字只读? 思路: 跟踪我们的:光标!如果光标的位置改变(不是最下一行)那么将text设置...

    综述

    最近在写一个文件系统。
    基础架构写了一段时间了,基本差不多了。还需要用QT做一个shell交互程序界面。参考mac和linux以及windows的shell,都是一个text框中进行操作的。而且
    在这一个text中只有最下一行可以输入
    问题来了:


    如何qtextedit怎么设置部分文字只读?

    思路:

    跟踪我们的:光标!如果光标的位置改变(不是最下一行)那么将text设置为只读(setReadOnly(true));否则(setReadOnly(false));
    下面关键是如何跟踪呢?

    使用信号槽机制。

    connect( myTextEdit, SIGNAL(cursorPositionChanged()), SLOT(on_textEdit_cursorPositionChanged()) );
    

    这里的cursorPositionChanged()系统已经有了。而
    on_textEdit_cursorPositionChanged()
    需要自写:
    在widget下写好该函数:

    void Widget::on_textEdit_cursorPositionChanged()
    {
      //当前光标
        qDebug()<<"coming"<<endl;           //可以看到行号随着光标的改变而改变
    
      QTextCursor tc = myTextEdit->textCursor();
      QTextLayout *pLayout = tc.block().layout();
      //当前光标在本BLOCK内的相对位置
      int nCurpos = tc.position() - tc.block().position();
      int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();
      qDebug()<<nTextline<<endl;           //可以看到行号随着光标的改变而改变
    }
    

    并记录在头文件中。

    还需要注意很多人出现了槽丢失的报错情况:

    Object::connect: No such slot (QT槽丢失问题)
    

    这是因为你的slot函数没有放在其下

    private slot:
    

    下面给出完整代码:

    代码

    main.cpp

    #include "widget.h"
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Widget w;
        w.resize(300,300);
        w.show();
    
        return a.exec();
    }
    

    widget.h

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QWidget>
    #include <QTextEdit>
    
    class Widget : public QWidget
    {
        Q_OBJECT
    
    public:
        Widget(QWidget *parent = 0);
    private:
        QTextEdit *myTextEdit;
        int max_line;
    private slots:
        void on_textEdit_cursorPositionChanged();
    };
    
    #endif
    

    widget.cpp

    #include "widget.h"
    #include <QTextLayout>
    #include <QTextBlock>
    #include <QDebug>
    void Widget::on_textEdit_cursorPositionChanged()
    {
      //当前光标
        qDebug()<<"coming"<<endl;           //可以看到行号随着光标的改变而改变
    
      QTextCursor tc = myTextEdit->textCursor();
      QTextLayout *pLayout = tc.block().layout();
      //当前光标在本BLOCK内的相对位置
      int nCurpos = tc.position() - tc.block().position();
      int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();
      qDebug()<<nTextline<<endl;           //可以看到行号随着光标的改变而改变
    }
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent)
    {
        setWindowTitle(tr("Viverrine-guest"));
        myTextEdit = new QTextEdit(this);
        myTextEdit->setFocus();               //得到鼠標
        myTextEdit->setText(tr("這是一段text內容:\n內容通常很多......"));  //設定內容文字
        myTextEdit->setGeometry(0,0,550,330); //設定位置大小
        qDebug()<<"nTextline"<<endl;           //可以看到行号随着光标的改变而改变
        connect( myTextEdit, SIGNAL(cursorPositionChanged()), SLOT(on_textEdit_cursorPositionChanged()) );
    
    }
    

    可以看到打印的行数。这里只读与可写在额外写到其中即可。

    效果

    这是我数据结构使用后缀数组实现(但不仅限于)的文字编辑器截图
    在这里插入图片描述

    展开全文
  • 假如我们自己写个东西给别人用,但是想让别人编辑,也会弹出这个锁定框lock住文件,该如何做呢? 其实也很简单,这个文件的属性设置为readonly,在Xcode里就会弹出这个锁定框了。 我们查看下这个文件的属性,如...
  • vim编辑如何设置自动对齐 一般的话,vim的配置文件会被放在/etc/vim/下的vimrc 且为只读文件,但是并影响我们改他的属性 这里我用的是sudo getdit vimrc指令,改动之后,终端会提示 (gedit:5299): Gtk-WARNING *...
  • ”的问题,下面由一级教师-李微竹为您解答:非常多时候我们也许需要多人在相同个Excel图表中进行编辑,可是当一个人在编辑的时候,另一个人打开则只能是只读编辑,这时可以对图表进行设置,将其设为分享,可以...
  • 打开“限制编辑”窗格, 在“编辑限制”选项组下勾选“仅允许在文档中进行此类型的编辑”复选框, 设置编辑限制为“允许任何更改(只读)”, 单击“是,启动强制保护”按钮,如下图所示。 步骤03 输入密码 弹出...
  • 对于一些重要的Excel文件,只供特殊人员查看、编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码、设置文件只读等操作。本篇文章将介绍如何使用C#来设置Excel工作簿和工作表的保护,示例内容...
  • U盘被写保护(也称U盘被锁)是U盘的一种状态,在这种状态下,U盘里的文件处于只读状态,也就是无法进行编辑,是为了保护U盘里的文件设置的。然而,在我们平常使用U盘的时候,经常会遇到U盘被写保护的情况,这时的...
  • 想让他人随意拷贝复制自己电脑里面的数据文件,今天u大师为大家提供一种方法即可禁用电脑中的文件被随意复制,具体方法大家可以参看下面的步骤: 1.打开“开始”“运行”输入“regedit.exe”。在打开的注册表编辑...
  • 对于一些重要的Excel文件,只供特殊人员查看、编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码、设置文件只读等操作。本篇文章将介绍如何通过C#编程来设置Excel工作簿和工作表的保护,示例...
  • NTFS权限设置

    2015-06-06 14:46:19
    1、 如何将FAT文件系统无损转换为NTFS文件夹系统? 答:“计算机→附件→命令提示符”打开命令提示符,或“开始→运行”输入“cmd”打开命令提示符。在命令提示符中输入:convert f:/fs:ntfs即可将F盘文件系统转换为...
  • 如何进行编辑?菜单全是灰的,怎么恢复?复制粘贴也能用?属性不是只读的,用Excel也打开。 相信让很多同事很头痛, 如果您有一定的电脑基础,您可以试一下以下方法: 1、首先用Word 2003打开已设置有密码的...
  • 1、如何设置config中的内容 readonly:true,//只读模式wordCount:false,//是否开启字数统计enableAutoSave: false,//自动保存功能重点:enableAutoSave一定生效,怎么办? ueditor.config.js文件中设置...
  • 闪存读取内存卡,如何去掉写保护

    千次阅读 热门讨论 2015-03-31 16:47:04
    遇到这样的情况,我第一反应是判断与什么有关,之前接触过的一些文件就有为了保护文件的完整性设定的只读能对文件编辑,所以这种情况应该和那个相似。于是我去百度查询,找这方面相关的资料,到底是哪个设置不对...
  • 编辑推荐  SQL Server程序员和DBA可或缺的权威参考手册  查询方便,迅速解决工作中的难题  大量来自微软内部的技巧 内容简介  t-sql一直以来都是 sql server编程的基础。和传统的 t-sql书籍不同,本书以独特...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    4 <br>0009 设置Windows应用程序启动窗体 5 <br>0010 设置Web应用程序起始页 5 <br>0011 如何设置程序的出错窗口 5 <br>0012 如何进行程序调试 6 <br>0013 如何结束能正常运行的程序 ...
  • 实务6 如何找到Oracle安装时生成的日志文件 实务7 安装Oracle时,是否需要安装JDK 实务8 解压安装文件时,报告无权限 实务 实务9 安装Oracle软件并创建完数据库后,服务内的ORACLESID显示 实务9 “启动”而不是...
  • * 如何行距为 0, 则 16 进制查看器屏幕显示可能正常 * 如果行距为 0, URL 着色可能正常 * 在 Windows XP 传统主题, 一些颜色主题显示灰色按扭可能正常 * 关闭素材窗口的 '排序' 选项还原最初顺序 * '帮助'...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • EditPlus 3.21绿色汉化版

    2011-03-30 20:04:58
    EditPlus(文字编辑器) 绿色汉化版一套功能强大,可取代记事本的文字编辑器,拥有无限制的撤消与重做、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑文件、全屏幕浏览功能。而它还有一个好用的功能,就是...
  • Visual Studio程序员箴言中文扫描PDF

    热门讨论 2010-12-28 01:04:18
    技巧2.24 在visual studio中编辑只读文件 43 技巧2.25 自定义“文件”→“打开”→“文件”对话框打开的目录 44 技巧2.26 自定义“最近的文件”列表中显示的项数(以及在何处找到这些列表) 44 2.3 书签 45 ...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...
  • 实务6 如何找到oracle安装时生成的日志文件 实务7 安装oracle时,是否需要安装jdk 实务8 解压安装文件时,报告无权限 实务 实务9 安装oracle软件并创建完数据库后,服务内的oraclesid显示 实务9 “启动”而不是...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 163
精华内容 65
关键字:

如何设置文件只读不编辑