整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何把网页秒变 PDF,然后慢慢看?

士军刀?

不知道你对各种文件的格式转换需求大不大,对于我来说是挺需要的,比如有时候我在 MarkDown 写的文章或者文档,我需要将它们转化成不同的文件形式来给别人阅读,比如网页,比如 PDF,电子书的 epub 等等的格式,甚至我还想要它们在不同的格式之间能够互相转换。

你想不想,把在线的网页变成 PDF, 然后慢慢看?

今天小帅b想要给你介绍的是一个开源的神器——pandoc。

它自称是一把文件格式转换的「瑞士军刀」,因为几乎你能够想到的用标记语言写的文件,都能通过 pandoc 进行转换。

If you need to convert files from one markup format into another, pandoc is your swiss-army knife.

那么,怎么通过 pandoc 来实现我们需要的文件格式转化呢?

安装一波呗~

根据你使用的操作系统,你可以到 GitHub 上下载相应的版本:

https://github.com/jgm/pandoc/releases/tag/2.11.3.2

你也可以使用命令的方式进行安装:

Mac OS 可以这样安装:

brew install pandoc

如果你是 Windows 用户也可以使用 choco 进行安装:

choco install pandoc

Ubuntu 可以这么安装:

sudo apt-get install pandoc

然后你输入以下命令,可以看到版本号就说明你安装成功了:

pandoc --version

如何使用 pandoc ?

pandoc 的命令是这样使用的:

pandoc [选项] [输入文件] ...

将 markdown 转化为 HTML

比如我想把我现在写的 markdown 是这样的:



想要把它转化成 HTML,就可以这样:

pandoc -s --metadata title='帅b讲pandoc' -o out.html Desktop/pandoc.md

这样就可以把我桌面上的 md 直接转出 html 文件了:



一行命令就搞定了,其中 「 -s --metadata title='帅b讲pandoc' -o out.html 」就是「选项」:

  • -s 指的是告诉pandoc我要生成有效的 HTML 文件
  • --metadata title 指的是说明 HTML 的 title
  • -o 指的是我们要输出的文件

而在最后面的 「Desktop/pandoc.md」就是「输入文件」。

pandoc 选项在哪啊?

可能你要问了,这些「选项」在哪里可以得到,分别都是什么意思?

有两个地方你可以查询得到,一个是在你的终端中使用 man 命令:

man pandoc

往下拉你就可以看到各种选项的意思:

另一个地方你可以通过在线文档查询,地址在这:

https://pandoc.org/MANUAL.html#options

内容都是一样的,不过网页更加方便查阅。

将 HTML 转化为 PDF

我们再来玩一下,将 HTML 文件转化为 PDF,因为 pandoc 在转化为 PDF 文件的时候,需要用到 pdf 引擎,pandoc 默认使用的是 pdflatex,如果你没有安装可以先安装一波。

brew install basictex

pandoc 支持的 pdf 引擎有很多,比如:

pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, prince, context

你可以根据自己的需要,选择对应的引擎,比如我们把刚刚生成的 HTML 文件直接转化为 PDF,就可以这样:

pandoc --pdf-engine=xelatex -o out.pdf out.html -V mainfont=STXihei

这里我们使用的 pdf 引擎是 xelatex,使用的中文字体是细黑,运行得到的 pdf 是这样子的:

是不是很方便,还有很多其他的文件格式,你都可以通过 pandoc 进行转化,你还可以对其指定样式,模板等操作,你都可以在这里找到:https://pandoc.org/MANUAL.html。

Python 使用 Pandoc

如果你想在 Python 中使用 pandoc ,也不是不行,你可以安装 pypandoc 这个库,然后使用也是很简单,像这样:


OK,以上就是今天小帅b给你带来的分享,希望对你有帮助!

最后,一直坚持原创分享不易,如果对你有帮助的话点个赞支持一下呗,这样我才有动力给你一直分享个不停嘛,好了,我们下回见,peace!

相关阅读

我是怎么通过 Python 排版公众号的?

你真的会使用 Python 命令吗?

使用终端命令行的一些技巧

版系统

LaTeX遵循呈现与内容分离的设计理念,以便作者可以专注于他们正在编写的内容,而不必同时注视其外观。在准备LaTeX文档时,作者使用章(chapter)、节(section)、表(table)、图(figure)等简单的概念指定文档的逻辑结构,并让LaTeX系统负责这些结构的格式和布局。因此,它鼓励从内容中分离布局,同时仍然允许在需要时进行手动排版调整。这个概念类似于许多文字处理器允许全局定义整个文档的样式的机制,或使用层叠样式表(CSS)来规定HTML的样式。LaTeX系统是一种可以处理排版和渲染的标记语言。

LaTex是什么?

LaTeX(/lɑtx/,常被读作/lɑtk/或/letk/),LaTeX(音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,排版时通常使用LATEX,由美国计算机学家莱斯利·兰伯特(LeslieLamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,不必一一亲自去设计或校对,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。LaTeX使用TeX作为它的格式化引擎,当前的版本是LaTeX2e(写作LATEX2ε)

LaTeX 的读音和书写

LaTeX的开发者Lamport表示对LaTeX的读音没有偏好。LaTeX的正确的写法是其官网首页展示的图标,请看图。如果因技术限制而无法做到,则应该写成“LaTeX”。不得改变任何一个字母的大小写,以免和“latex”(乳胶)混淆。

Lamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。它构筑在Plain TeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TeX的强大功能。使用LaTeX基本上不需要使用者自己设计命令和宏等,因为LaTeX已经替你做好了。因此,即使使用者并不是很了解TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX表现的更为出色。LaTeX自从八十年代初问世以来,也在不断的发展.最初的正式版本为2.09,在经过几年的发展之后,许多新的功能,机制被引入到LaTeX中。

TeX 格式

最基本的TeX程序只是由一些很原始的命令组成,它们可以完成简单的排版操作和程序设计功能。然而,TeX也允许用这些原始命令定义一些更复杂的高级命令。这样就可以利用低级的块结构,形成一个用户界面相当友好的环境。

在处理器运行期间,该程序首先读取所谓的格式文件,其中包含各种以原始语言写成的高级命令,也包含分割单词的连字号安排模式。接着处理程序就处理源文件,其中包含要处理的真正文本,以及在格式文件中已定义了的格式命令。

创建新格式是一件需要由具有丰富知识的程序员来做的事情。把定义写到一个源文件中,这个文件接着被一个名叫iniTeX的特殊版本的TeX程序处理。它采用一种紧凑的方式存贮这些新格式,这样就可以被通常TeX程序很快地读取。

LaTeX

Leslie Lamport 开发的LaTeX是当今世界上最流行和使用最为广泛的TeX格式。它构筑在 PlainTeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TeX的强大功能。使用LaTeX基本上不需要使用者自己设计命令和宏等,因为LaTeX已经替你做好了。因此,即使使用者并不是很了解TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX表现的更为出色。

LaTeX自从二十世纪八十年代初问世以来,也在不断的发展。最初的正式版本为2.09,在经过几年的发展之后,许多新的功能,机制被引入到LaTeX中。在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性。标准的LaTeX2.09,引入了“新字体选择框架”(NFSS)的LaTeX,SLiTeX,AMSLaTeX等等,相互之间并不兼容。这给使用者和维护者都带来很大的麻烦。

TeX 和LaTeX 的关系

LaTeX 是TEX 中的一种格式(format) ,是建立在TeX基础上的宏语言,也就是说,每一个LaTeX命令实际上最后都会被转换解释成几个甚至上百个TeX命令。但是,普通用户可以无需知道这中间的复杂联系。就像编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LaTeX根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果。

简单的规则:

(1)空格:LaTeX中空格用来隔开单词(英语一类字母文字),多个空格等效于一个空格;对中文没有作用。

(2)换行:用控制命令“\”,或“ \newline”。

(3)分段:用控制命令“\par” 或空出一行。

(4)换页:用控制命令“\newpage”或“\clearpage”。

(5)特殊控制字符:#,$, %, &, - ,{, }, ^, ~。

小提示:要想输出这些控制符,在控制符前面加一个反斜杠作为转义字符进行控制输出。

(6) 有对应的西文字符转换表;字号转换命令表;可以纵向固定间距控制命令;有页面控制命令;可以使用LaTeX编辑表格;可以使用LaTeX编辑数学公式。

(7)常见数学公式排版命令:

(7.1)行中数学公式状态命令:\begin{math} 数学公式 \end{math}。

简式1: \( 数学公式 \);

简式2: $ 数学公式 $。

(7.2)独立数学公式(不带编号)状态命令:\begin{displaymath} 数学公式 \end{displaymath}。

简式1: \[ 数学公式 \];

简式2: $$ 数学公式 $$。

(7.3)独立数学公式(带编号)状态命令:\begin{equation}数学公式\end{equation}

\begin{equation*}数学公式\end{equation*}可以取消编号。

常用数学符号的 LaTeX 表示方法

1、指数使用^表示、而下标可以用_表示,在其特殊控制符号后加相应字符来实现。比如:

$a_{1}$ ; $x^{2}$。

2、平方根(square root)的输入命令为:\sqrt,n 次方根相应地为:\sqrt[n]。方根符号的大小由 LATEX自动加以调整。也可用 \surd 仅给出符号。比如:$\sqrt{ x^{2}+\sqrt{y} }$。

3、命令\overline 和\underline 在表达式的上、下方画出水平线。比如:

$\overline{m+n}$;$\underline{m+n}$。

4、命令\overbrace 和\underbrace 在表达式的上、下方给出一水平的大括号。比如:$\underbrace{ a+b+\cdots+z }_{26}$

于TeX

TeX是一款功能强大的Telegram安全监控与管理工具,该工具专为Telegram设计,可以实现针对Telegram的安全监控与管理。

TeX旨在帮助安全研究人员、调查人员和执法人员收集和处理针对网络犯罪分子的取证信息,其中包括网络犯罪、欺诈攻击、安全攻击和相关Telegram群组的信息。

工具要求

Python 3.10+

Windows x64或Linux x64

功能介绍

1、连接管理器(用于处理Telegram连接);

2、群组消息收集器;

3、群组枚举(收集所有群组的信息,包括群组成员信息和个人资料图片等);

4、群组信息自动同步;

5、用户信息自动同步;

6、消息监听器(监听所有传入的消息);

7、消息收集器(收集群组全部的消息);

8、媒体资源下载;

9、HTML报告生成;

10、导出下载的文件;

11、导出消息;

12、消息查找系统(支持使用语句或正则表达式查找消息);

13、消息通知系统(支持向Discord发送警报和所有监听到的消息);

14、Elastic Search 8+原生集成;

15、使用Tesseract的图像OCR;

工具架构

工具安装

源码安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3.x环境。接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/guibacellar/TEx.git

然后切换到项目目录中,使用pip工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:

cd TEx

pip install -r requirements.txt

pip安装

除此之外,我们还可以通过pip来安装TeX:

pip install TelegramExplorer

工具更新

下列命令可以直接利用pip install upgrade命令将TeX升级至最新版本:

pip install --upgrade TelegramExplorer

身份验证

你在首次连接时可能会需要你提供一个额外的身份验证信息,TeX将会弹窗提示你提供身份挑战应答:

工具使用

基础使用

首先,使用下列内容在/usr/my_TEx_config.config路径下创建一个配置文件my_TEx_config.config:

[CONFIGURATION]

api_id=12555896

api_hash=dead1f29db5d1fa56cc42757acbabeef

phone_number=15552809753

data_path=/usr/home/tex_data/

执行前两个命令配置并同步TeX,最后一个命令用来激活监听器模块:

python3 -m TEx connect --config /usr/my_TEx_config.config

python3 -m TEx load_groups --config /usr/my_TEx_config.config
python3 -m TEx listen --config /usr/my_TEx_config.config

命令行使用

连接到Telegram服务器:

python3 -m TEx connect --config CONFIGURATION_FILE_PATH

更新群组列表:

python3 -m TEx load_groups --config CONFIGURATION_FILE_PATH

python3 -m TEx load_groups --config CONFIGURATION_FILE_PATH --refresh_profile_photos

监听消息:

python3 -m TEx listen --config CONFIGURATION_FILE_PATH

python3 -m TEx listen --config CONFIGURATION_FILE_PATH --group_id 1234,5678

枚举群组列表:

python3 -m TEx list_groups --config CONFIGURATION_FILE_PATH

下载消息:

python3 -m TEx download_messages --config CONFIGURATION_FILE_PATH

python3 -m TEx download_messages --config CONFIGURATION_FILE_PATH --ignore_media --group_id 1234,5678

工具运行结果

导出文件:

状态报告:

文本报告:

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

TeX:https://github.com/guibacellar/TEx

参考资料

https://telegramexplorer.readthedocs.io/en/latest/