精华内容
下载资源
问答
  • 如何使用python 给PDF生成目录 主要步骤: 步骤1. 准备目录的txt,如果PDF是图片无法复制出来,可以使用qq图文识别提取目录内容。 目录txt 格式: 关于QQ图片文字提取: (1)利用qq聊天框中的屏幕识图 (2)转为...

    如何使用python 给PDF生成目录

    主要步骤:
    步骤1.
    准备目录的txt,如果PDF是图片无法复制出来,可以使用qq图文识别提取目录内容。
    目录txt 格式:
    在这里插入图片描述
    关于QQ图片文字提取:
    (1)利用qq聊天框中的屏幕识图
    (2)转为在线文档
    在这里插入图片描述
    (3)复制目录内容生成一个txt 文件
    把页面前面的点去掉
    在这里插入图片描述
    步骤2
    执行python 脚本生成目录,会生成一个原文件名-new的PDF文件

    
    
    import re
    import sys
    
    from distutils.version import LooseVersion
    from os.path import exists, splitext
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    
    is_python2 = LooseVersion(sys.version) < '3'
    
    
    def _get_parent_bookmark(current_indent, history_indent, bookmarks):
        '''The parent of A is the nearest bookmark whose indent is smaller than A's
        '''
        assert len(history_indent) == len(bookmarks)
        if current_indent == 0:
            return None
        for i in range(len(history_indent) - 1, -1, -1):
            # len(history_indent) - 1   ===>   0
            if history_indent[i] < current_indent:
                return bookmarks[i]
        return None
    
    def addBookmark(pdf_path, bookmark_txt_path, page_offset):
        if not exists(pdf_path):
            return "Error: No such file: {}".format(pdf_path)
        if not exists(bookmark_txt_path):
            return "Error: No such file: {}".format(bookmark_txt_path)
    
        # with open(bookmark_txt_path, 'r', encoding='utf-8') as f:
        with open(bookmark_txt_path, 'r', encoding='gbk') as f:
            bookmark_lines = f.readlines()
        reader = PdfFileReader(pdf_path)
        writer = PdfFileWriter()
        writer.cloneDocumentFromReader(reader)
    
        maxPages = reader.getNumPages()
        bookmarks, history_indent = [], []
        # decide the level of each bookmark according to the relative indent size in each line
        #   no indent:          level 1
        #     small indent:     level 2
        #       larger indent:  level 3
        #   ...
        for line in bookmark_lines:
            line2 = re.split(r'\s+', unicode(line.strip(), 'utf-8')) if is_python2 else re.split(r'\s+', line.strip())
            if len(line2) == 1:
                continue
    
            indent_size = len(line) - len(line.lstrip())
            parent = _get_parent_bookmark(indent_size, history_indent, bookmarks)
            history_indent.append(indent_size)
            title, page = ' '.join(line2[:-1]), int(line2[-1]) - 1
            if page + page_offset >= maxPages:
                return "Error: page index out of range: %d >= %d" % (page + page_offset, maxPages)
            new_bookmark = writer.addBookmark(title, page + page_offset, parent=parent)
            bookmarks.append(new_bookmark)
    
        out_path = splitext(pdf_path)[0] + '-new.pdf'
        with open(out_path,'wb') as f:
            writer.write(f)
    
        return "The bookmarks have been added to %s" % out_path
    
    if __name__ == "__main__":
        import sys
        args = sys.argv
        print(args)
        pdf_path='./Hive.pdf'
        bookmark_txt_path='./format.txt'
        page_offset=22
        addBookmark(pdf_path,bookmark_txt_path,page_offset)
    

    生成新的带目录的pdf 文件
    在这里插入图片描述

    参考https://www.zhihu.com/question/344805337/answer/819338479

    展开全文
  • FreePic2Pdf提取目录,拷贝修改后的文本 PdgCntEditor编辑目录 拷贝目录txt vim打开文本,进行格式修改 打开方式: 用vim.exe打开txt文档,用Esc改变模式:命令模式、编辑模式(insert键更改替换和插入),输入...

    工具:
    GVim
    FreePic2Pdf,密码:at9e
    PdgCntEditor,密码:m34bkv
    如果pdf被锁更改pdf失败,可用这个网站解密

    主要流程

    • 找到目录;搜索例如douban,书的原版网站,google books以及最差的情况哪里也找不到就只能OCR
    • Vim修改目录格式
    • FreePic2Pdf提取目录,拷贝修改后的文本
    • PdgCntEditor编辑目录
    1. 拷贝目录txt
      在这里插入图片描述
    2. vim打开文本,进行格式修改
      打开方式:右键使用vim打开
      在这里插入图片描述

    用vim.exe打开txt文档,用Esc改变模式:命令模式、编辑模式(insert键更改替换和插入),输入进入命令(右键即为拷贝)
    在这里插入图片描述

    目标格式:

    一级目录A   页码
        二级目录a   页码
        	三级目录	页码
    一级目录B   页码
        二级目录b   页码
    

    PdgCntEditor 中对目录的分级是根据缩进(Tab)来确定的,因此一级目录不用缩进,二级目录行首应该有一个缩进,三级目录有两个缩进。
    页码跟在目录名之后,中间用一个 Tab 隔开。

    • 三级目录添加两个tab。命令:%s/\v^\ze(\d+\.\d+\.)/\t\t/
    • 所以这里给二级目录添加一个缩进,命令 :%s/\v^\ze(\d+\.\d+)/\t/
    • 然后将目录名和页码中间的字符串替换为 Tab,命令 :%s/\v(\s\.)+\s/\t/
      (此步我操作失败,改用idea利用ctrl+shift+alt+J进行相同字符选择手动将页码前两个空格变成tab)
      在这里插入图片描述
    • 页码重定位,加上一个偏移量,命令::%s/\d\+$/\=submatch(0)+22/
    • 保存,或使用命令:wq保存并退出

    3.目录导入pdf
    制作好目录之后,我们打开 FreePic2Pdf 程序,点击“更改PDF”:
    在这里插入图片描述
    接着选择“从 PDF 取书签”,这步是为了得到接口文件,即使 PDF 本身并没有书签:在这里插入图片描述
    然后选择“往 PDF 挂书签”,点击图中标号 2 处,会打开 PdgCntEditor 让你编辑目录信息:
    在这里插入图片描述
    将上面生成的目录文本粘贴进来,保存后关闭:
    在这里插入图片描述
    最后点击“开始”完成书签目录的导入:
    在这里插入图片描述
    最终效果:
    在这里插入图片描述

    参考:
    PDF 没有书签目录?自己动手五分钟生成!
    如何用FreePic2Pdf和PdgCntEditor制作目录

    展开全文
  • 我们往往需要在首页插入目录,那么如何给文档添加目录呢,不知道有没有小伙伴是手动输入目录的,其实Word文档自带了强大的目录生成功能,以下是小编为大家整理的相关WPS中自动生成目录的方法,一起来看看吧!...

    WPS是一款功能强大的办公软件,常常用于编辑文字,该软件结合了PDF文件格式,EXCEL格式,以及world格式。其中Word相比其他两个软件下载率更高,当我们在制作某些书册或者时书籍以及论文时,我们往往需要在首页插入目录,那么如何给文档添加目录呢,不知道有没有小伙伴是手动输入目录的,其实Word文档自带了强大的目录生成功能,以下是小编为大家整理的相关WPS中自动生成目录的方法,一起来看看吧!

    方法步骤

    大小:68.68 MB版本:10.1.0.7468 个人正式版环境:WinXP, Win7, Win8, Win10, WinAll

    第一步:首先打开WPS,大家可以在网页中点击下载和小编一样的版本的WPS。

    第二步:打开WPS后,点击进入编辑大家需要的编写的文档,注意,大家只有用文档中自带的标题格式才能自动生成目录,我们在这里全部选择标题一。

    第三步:选择需要添加目录的空白页,单击引用。选择空白页完成后单击将鼠标的光标定义在这一页,然后单击导航条上方的应用。

    第四步:选择应用以后,继续单击目录。这里有很多的目录格式,大家根据自己的需求选择一种即可,我们选择第四种。

    要记住哦,我们在引用目录之前得先将我们得选择相应的标题,将以上是WPS中自动生成目录的方法介绍,希望对大家有帮助。

    展开全文
  • 我们在制作完成一个PDF文档后,需要给文件添加目录便于快速查看内容,但如果手动一条一条添加太浪费时间,也容易出错,那么如何才能给PDF文件自动添加目录呢? 首先用极速PDF编辑器打开我们需要添加目录的PDF文件后...

    我们在制作完成一个PDF文档后,需要给文件添加目录便于快速查看内容,但如果手动一条一条添加太浪费时间,也容易出错,那么如何才能给PDF文件自动添加目录呢?

    首先用极速PDF编辑器打开我们需要添加目录的PDF文件后,选择工具栏的“书签”打开左侧的书签控制面板。(这里用编辑器添加书签的功能就是我们常说的目录了)
    在这里插入图片描述

    我们可以看到书签工具面板中有一个自动书签工具,点击这个功能键即可快速给PDF文档自动添加目录,当然前提是PDF内容必须有已经提前标好的一级、二级等标题,这个与Word的文档结构图是类似的。
    在这里插入图片描述

    点击自动书签工具后,系统会弹出是否从当前页面开始的提示,如文档有目录,一般是建议从正文开始,如没有特殊要求,页面停留在PDF第一页后直接点击是即可。
    在这里插入图片描述

    这样就会自动添加目录了,如目录前的符号为“+”则说明有二级目录,点击即可展开查看;
    在这里插入图片描述

    双击书签标题可以修改书签名称,通过书签工具栏中的“+”和“X”可以继续新增已经删除书签。
    在这里插入图片描述

    最后需要注意的是,操作完成之后一定要将文档进行保存方可生效哦。我们可以用极速PDF阅读器打开文档后,点击左侧工具栏中的“目录”即可查看到上一步自动生成的目录,点击对应标题可快速跳转查看。
    在这里插入图片描述

    展开全文
  • PDF转换器是如何转换PDF文件的?PDF以它的个性化阅读,得到很多读者的亲睐,无论是单纯的文字阅读还是图文并行的阅读或者是单纯的托盘阅读,它都人一种舒适的体验。但是PDF文件有有一个非常不方便的问题就是很难...
  • 我们在制作完成一个PDF文档后,需要给文件添加目录便于快速查看内容,但如果手动一条一条添加太浪费时间,也容易出错,那么如何才能给PDF文件自动添加目录呢?首先用极速PDF编辑器打开我们需要添加目录的PDF文件后,...
  • 可是生成PDF文件体积都很大,往往无法传输领导或者同事。这种情况下,很多人选择将PDF文件进行压缩。如何PDF文件压缩呢?PDF文件压缩有没有什么方法?PDF文件压缩的方法有很多,但是其中的一些简单方法大家...
  • 我们在制作完成一个PDF文档后,需要给文件添加目录便于快速查看内容,但如果手动一条一条添加太浪费时间,也容易出错,那么如何才能给PDF文件自动添加目录呢?首先用极速PDF编辑器打开我们需要添加目录的PDF文件后,...
  • 二、下载完成的硕博论文用pdf阅读器(用Acrobat pro DC为例,注意版本必须9.3以上)打开左侧没有目录标签(可以点击任意跳转的那种),这里摸索了半天出一种解决办法: 1. 首先,你的pdf文件要有目录
  • 其主要难点就在于如何生成条形码、如何批量打印条形码以及将界面条形码信息批量生成以其各自的 barcode 码命名的pdf文件并存到指定的目录下。由于自身“储备”不足于是开始大量的在网上搜索关于这几个方面的资料,...
  • 本书将以循序渐进的方式让读者首先学习到如何编写简单的程序来绘制简单的图像,然后一步一步深入地掌握如何生成更加复杂的特殊效果的技巧。  练习和问题  本书包含超过350道来源于实际问题的练习题。其中大部分都...
  • 手动优化了PDF的书签,书签可折叠,书签链接以目录方式保存,多达1000多页,每页都做了书签定位,手都累酸啦。 ============================== 因权限只能到60MB,分卷压缩了,共3个压缩包,需下载完3个一起解压, ...
  • 部分章节目录: 第1章 使用Visual C++编程 1 1.1 使用Visual C++学习 1 1.2 编写C++应用程序 2 1.3 学习桌面应用程序的编程 2 1.3.1 学习C++ 3 1.3.2 C++概念 3 1.3.3 控制台应用程序 4 1.3.4 Windows编程...
  • PDG文件批量转换PDF

    热门讨论 2011-03-24 14:55:37
    能够在PDF文件中自动生成三段页码:封面、版权页用大写英文字母,目录页用小写罗马字母,正文页用阿拉伯数字;能够将BookInfo.dat作为文本添加到PDF文件中,并用其中内容填写PDF的Document Properties,包括Title、...
  • 如何给工具条增加一个下拉按钮以及如何响应单击下拉按钮的消息 如何实现工具栏上的下压式按钮 如何在同一行上停靠两个工具条 如何使能和禁止工具条的工具提示 如何在工具栏中放CComboBox控件 如何将系统时间在状态栏...
  • Numpy用户指南.pdf

    2020-05-21 16:56:54
    目录 1. NUMPY 介绍 1 1.1 什么是 NUMPY? 1 1.2 为什么 NUMPY 这么快? 3 1.3 还有谁在使用 NUMPY? 3 2. 快速入门教程 4 2.1 先决条件 4 2.2 基础知识 4 2.2.1一个例子 5 2.2.2 数组创建 6 2.2.3 打印数组 8 2.2.4 ...
  • 传说有天,几位Java成员组的会员正在讨论这个新的语言取什么名字,当时他们止在 咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎杵,得到了其他人的赞同, 于是,Java这个名字就这样传开了。当然对于传说,了解...
  • 深入理解Python中文版高清PDF

    热门讨论 2012-09-04 19:37:04
     7.6.1 如何创建集合类型和集合赋值   7.6.2 如何访问集合中的值   7.6.3 如何更新集合   7.6.4 如何删除集合中的成员和集合   7.7 集合类型操作符   7.7.1 标准类型操作符(所有的集合类型...
  • 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1...
  • 6.15 网页生成器 6.15.1 建立HTML模板 6.15.2 指定HTML模板 6.15.3 返回转换回的结果 6.15.4 OnHTMLTag事件 6.15.5 TDataSetPageProducer 6.16 基于Web的数据库应用程序 6.16.1 用TSession管理数据库连接 6.16.2 ...
  • MYSQL网络数据库PDF学习资源

    热门讨论 2009-08-09 19:56:31
    7.3.1 生成历史同盟目录 218 7.3.2 发送成员资格更新通知 223 7.3.3 历史同盟成员项目编辑 227 7.3.4 寻找共同兴趣的历史同盟成员 231 7.3.5 联机历史同盟目录 232 7.4 在 Web 应用程序中使用 DBI 234 7.4.1 设置CGI...
  • GNOME GTK+ 编程宝典.pdf

    千次下载 热门讨论 2012-11-19 15:28:08
    本书以大量实例,伴以通俗易懂的解释一步步教你如何构建对话框、事件、工具条及其他界面元素,以及各种小部件、窗口和多文档界面(MDI),使你的应用程序活跃在Linux桌面上。  本书适合于计算机编程人员、大专院校...
  • Node与Express开发.pdf

    2018-04-23 19:19:43
    第 1 章 初识 Express ................................................... 27 4.3 针对本书如何使用 Git..........................................................................................................
  • dic.jsp收到用户的请求后会将消息投递到redis服务器, redis服务器在发布消息所有订阅的分词器 11、词性标注 将分词结果作为输入参数,调用PartOfSpeechTagging类的process方法,词性保存在Word类的partOfSpeech...
  • C#微软培训教材(高清PDF

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET的第一语言 本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕不明白。 <<page 1>> page begin==================== 目 目目 目 录 ... 比尔.... 2000 年 6 月 ...
  • Perl 实例精解(第三版).pdf

    热门讨论 2010-11-06 09:08:02
    原书名: Perl by Example(Third Edition),原出版社: PH PTR,作者: Ellie Quigley,译者: 杜炜,出版社:清华大学出版社,出版日期:2002 年8月,PDF 格式,大小 19 Mb。 内容简介 本书以最新版本的Perl ...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 1.11 extern在函数声明中是什么意思? 1.12 ...
  • 书中主要介绍了如何使用面向对象技术和设计模式编写稳定的、可维护的代码,如何使用Subversion管理多个开发人员,如何使用Phing和PEAR进行构建和安装,以及将构建和测试过程自动化的策略,包括持续集成。 《深入...
  • 21天学通javascript(第2版)(顾宁燕) pdf扫描版

    千次下载 热门讨论 2014-09-26 12:40:11
    《21天学通javascript(第2版)(含dvd光盘1张)》中,每一篇都是不同层次的完整内容,这不仅初学者安排了循序渐进的学习过程,也便于不同层次读者选读。本书既适合没有编程基础的javascript语言初学者作为入门教程...

空空如也

空空如也

1 2 3 4 5 6
收藏数 113
精华内容 45
关键字:

如何给pdf生成目录