graphitepdf-kit 0.2.0

A core PDF generation library for Rust: document building, text, vector graphics, images, and more.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::error::{GraphitePdfKitError, Result};
use flate2::{Compression, write::ZlibEncoder};

#[cfg(feature = "tracing")]
use tracing::instrument;

#[cfg_attr(feature = "tracing", instrument(skip(data)))]
pub fn flate_encode(data: &[u8]) -> Result<Vec<u8>> {
    let mut encoder = ZlibEncoder::new(Vec::new(), Compression::default());
    std::io::Write::write_all(&mut encoder, data).map_err(|e| {
        GraphitePdfKitError::CompressionError(format!("Failed to write to encoder: {}", e))
    })?;
    encoder.finish().map_err(|e| {
        GraphitePdfKitError::CompressionError(format!("Failed to finish compression: {}", e))
    })
}