Mineru

用MinerU将PDF转成epub

看到一本电子书是扫描版的PDF格式,文件很大而且阅读起来不方便。所以尝试用MinerU将PDF转换成epub。整体流程如下:

  1. 将PDF转换成Markdown格式
  2. 将Markdown转换成epub

MinerU

MinerU是一个处理PDF的工具 地址github 。MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。

Maven

Maven

Maven安装直接参考 https://developer.aliyun.com/article/1078699

Maven介绍

用命令创建一个新Maven项目

mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
  • DgroupId=com.example:项目的组织标识符(通常是公司或组织的域名倒序)
  • DartifactId=my-app:项目名称(即生成的项目文件夹名称)
  • DarchetypeArtifactId=maven-archetype-quickstart:使用 Maven 提供的基础项目模板
  • DinteractiveMode=false:非交互模式,自动创建项目。

生成目录结构:

C语言编译基础

C语言编译基础

GCC(GNU Compiler Collection)在编译 C 程序时,实际上是一个“编译驱动器”,它协调多个独立的工具完成从源代码到可执行文件的全过程。 虽然我们通常用一条命令如 gcc hello.c -o hello 就完成了编译,但实际上背后经历了四个主要阶段:预处理(Preprocessing)→ 编译(Compilation)→ 汇编(Assembly)→ 链接(Linking)

Java_actor

Java并发编程-Actor模式

Actor 模式是一种并发编程模型,它将每个并发实体视为一个独立的 Actor。

  • 每个 Actor 都有自己的状态和行为,并且通过异步消息传递进行通信。
  • Actor 之间不会共享状态,避免了传统并发编程中因共享状态带来的锁竞争、死锁等问题。

关键组件:

并发编程-不变性模式

Java不变性模式

不变性模式通过创建不可变对象来避免并发问题。不可变对象一旦创建就不能修改,天然线程安全。

不可变对象的特征

  • **状态不可变:**对象创建后状态不能改变
  • **所有字段都是final:**确保字段不能被重新赋值
  • **没有setter方法:**不提供修改状态的方法
  • **类是final的:**防止子类破坏不变性

举例说明

并发编程-单例模式

Java单例模式

单例模式是最常用的设计模式之一,但在多线程环境下,传统的单例实现可能存在线程安全问题。我们需要掌握各种线程安全的单例实现方式。

懒汉式单例

线程不安全的懒汉式