#pdf #render #codebase #file #title #binary-file #font

app pdfcr

一个将代码库渲染为PDF的工具

3个稳定版本

1.2.0 2021年1月25日
1.1.0 2021年1月24日
1.0.0 2020年12月16日

#39 in #codebase

自定义许可

155KB
243

pdfcr

PDF代码渲染器

这是一个实用程序,可以将文件转换为适用于kindle(或任何地方)阅读并带有书签的PDF。

pdfcr version 1.0
usage:
pdfcr [files]... [directories]... [--stop-on-bad-file | -s] [--title | -t TITLE] -o output-file.pdf

file: an optional list of files to render
directories: an optional list of directories to render
NOTE: at least one file or directory must be provided

--stop-on-bad-file | -s: if pdfcr finds a file such as a binary file, it will not skip it (default), but stop and not render an output file

--title | -t: specify the title of the document, default is TITLE

-o: the output pdf file to render to, required

examples:

pdfcr src -o code.pdf # classic example
pdfcr src Cargo.toml -o code.pdf -t \"is this a quine?\" # this renders the src directory and a Cargo.toml file to code.pdf, with a title of \"is this a quine?\"
pdfcr cmd -o test.pdf --stop-on-bad-file # renders every file in cmd to test.pdf, but if it encounters binary files, it aborts the rendering

一个使用此命令从该代码库渲染的示例文件是example_out.pdf,使用以下命令:pdfcr src/ Cargo.toml .gitignore LICENSE README.md -o example_out.pdf -t "Is this quine?"。所使用的字体是JetBrains Mono,它被嵌入到二进制文件中。

与主要竞争对手render50相比,这个工具具有更高的速度和更低的内存占用。我创建这个工具的原因是我想在kindle上查看一个非常大的代码库,而render50渲染它需要超过4GB的RAM,这是不可接受的。

 time render50 src -o out.pdf
Rendered src/main.rs.
Rendered src/util.rs.
Rendered out.pdf.

real	0m27.082s
user	0m8.432s
sys	0m0.743s
 time pdfcr src -o out.1.pdf
Rendered: src/util.rs
Rendered: src/main.rs
saving document...
Saved into: out.1.pdf

real	0m0.125s
user	0m0.113s
sys	0m0.012s

依赖关系

~17–25MB
~169K SLoC