13 releases

0.1.12 Nov 20, 2023
0.1.11 Nov 13, 2023
0.1.8 Sep 16, 2022

#217 in Graphics APIs


Used in rustweb2

MIT/Apache

25KB
662 lines

This crate implements minimal conversion from HTML to PDF.

ToDo: Proper parsing of tag attibutes. Font sizing, html tables. A whole lot more.

Test example

   use pdf_min::*;
   let source = format!("
<html>
<head>
  <title>Rust is Great</title>
</head>
<body>
<h1>Important Notice&excl;</h1>
<p>Hello <b>something bold</b> ok</p>
<p>Hi <i>italic test</i>
<p>Hi <i><b>bold italic test</b> ok</i>
<p>Hi <sup>sup test</sup> ok
<p>Hi <sub>sub text</sub> ok
<p>{}
</body>
</html>
","Some words to cause Line and Page wrapping ".repeat(200));
   let mut w = Writer::default();
   w.b.nocomp = true;
   w.line_pad = 8; // Other Writer default values could be adjusted here.
   html(&mut w, source.as_bytes());
   w.finish();

   use std::fs::File;
   use std::io::prelude::*;

   let mut file = File::create("test.pdf").unwrap();
   file.write_all(&w.b.b).unwrap();

Dependencies

~5MB
~158K SLoC