Yatekii / qrbill

2 stars 3 forks source link

Add ability to write directly to PDF files. #2

Closed jacg closed 3 weeks ago

jacg commented 3 weeks ago

This uses the svg2pdf crate to do the hard work. Perhaps it should go behind a feature gate?

The second commit makes the writer functions names more symmetric, but it's not necessary, particularly if you prefer to have SVG as the primary or default format.

Yatekii commented 3 weeks ago

How big is the dep tree pulled by svg2pdf? Other than that, love the change! Thanks!

jacg commented 3 weeks ago

How big is the dep tree pulled by svg2pdf?

─ svg2pdf v0.11.0
├── fontdb v0.18.0
│   ├── fontconfig-parser v0.5.6
│   │   └── roxmltree v0.19.0
│   ├── log v0.4.21
│   ├── memmap2 v0.9.4
│   │   └── libc v0.2.155
│   ├── slotmap v1.0.7
│   │   [build-dependencies]
│   │   └── version_check v0.9.4
│   ├── tinyvec v1.6.0
│   │   └── tinyvec_macros v0.1.1
│   └── ttf-parser v0.21.1
├── image v0.25.1
│   ├── bytemuck v1.16.0
│   ├── byteorder v1.5.0
│   ├── color_quant v1.1.0
│   ├── gif v0.13.1
│   │   ├── color_quant v1.1.0
│   │   └── weezl v0.1.8
│   ├── num-traits v0.2.19 (*)
│   ├── png v0.17.13
│   │   ├── bitflags v1.3.2
│   │   ├── crc32fast v1.4.2
│   │   │   └── cfg-if v1.0.0
│   │   ├── fdeflate v0.3.4
│   │   │   └── simd-adler32 v0.3.7
│   │   ├── flate2 v1.0.30
│   │   │   ├── crc32fast v1.4.2 (*)
│   │   │   └── miniz_oxide v0.7.3
│   │   │       ├── adler v1.0.2
│   │   │       └── simd-adler32 v0.3.7
│   │   └── miniz_oxide v0.7.3 (*)
│   ├── zune-core v0.4.12
│   └── zune-jpeg v0.4.11
│       └── zune-core v0.4.12
├── log v0.4.21
├── miniz_oxide v0.7.3 (*)
├── once_cell v1.19.0
├── pdf-writer v0.10.0
│   ├── bitflags v2.5.0
│   ├── itoa v1.0.11
│   ├── memchr v2.7.2
│   └── ryu v1.0.18
├── resvg v0.42.0
│   ├── gif v0.13.1 (*)
│   ├── jpeg-decoder v0.3.1
│   ├── log v0.4.21
│   ├── pico-args v0.5.0
│   ├── rgb v0.8.37
│   │   └── bytemuck v1.16.0
│   ├── svgtypes v0.15.1
│   │   ├── kurbo v0.11.0
│   │   │   ├── arrayvec v0.7.4
│   │   │   └── smallvec v1.13.2
│   │   └── siphasher v1.0.1
│   ├── tiny-skia v0.11.4
│   │   ├── arrayref v0.3.7
│   │   ├── arrayvec v0.7.4
│   │   ├── bytemuck v1.16.0
│   │   ├── cfg-if v1.0.0
│   │   ├── log v0.4.21
│   │   ├── png v0.17.13 (*)
│   │   └── tiny-skia-path v0.11.4
│   │       ├── arrayref v0.3.7
│   │       ├── bytemuck v1.16.0
│   │       └── strict-num v0.1.1
│   │           └── float-cmp v0.9.0
│   └── usvg v0.42.0
│       ├── base64 v0.22.1
│       ├── data-url v0.3.1
│       ├── flate2 v1.0.30 (*)
│       ├── fontdb v0.18.0 (*)
│       ├── imagesize v0.12.0
│       ├── kurbo v0.11.0 (*)
│       ├── log v0.4.21
│       ├── pico-args v0.5.0
│       ├── roxmltree v0.20.0
│       ├── rustybuzz v0.14.0
│       │   ├── bitflags v2.5.0
│       │   ├── bytemuck v1.16.0
│       │   ├── smallvec v1.13.2
│       │   ├── ttf-parser v0.21.1
│       │   ├── unicode-bidi-mirroring v0.2.0
│       │   ├── unicode-ccc v0.2.0
│       │   ├── unicode-properties v0.1.1
│       │   └── unicode-script v0.5.6
│       ├── simplecss v0.2.1
│       │   └── log v0.4.21
│       ├── siphasher v1.0.1
│       ├── strict-num v0.1.1 (*)
│       ├── svgtypes v0.15.1 (*)
│       ├── tiny-skia-path v0.11.4 (*)
│       ├── unicode-bidi v0.3.15
│       ├── unicode-script v0.5.6
│       ├── unicode-vo v0.1.0
│       └── xmlwriter v0.1.0
├── siphasher v1.0.1
├── subsetter v0.1.1
├── tiny-skia v0.11.4 (*)
├── ttf-parser v0.21.1
├── unicode-properties v0.1.1
└── usvg v0.42.0 (*)