mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-15 17:07:19 +00:00
26 lines
653 B
Rust
26 lines
653 B
Rust
//! Zip writer for Office files using `craft-zip`.
|
|
|
|
use craft_zip::{Compression, Writer};
|
|
|
|
/// Zip archive writer wrapping [`Writer`].
|
|
#[derive(Default)]
|
|
pub struct Zip {
|
|
writer: Writer,
|
|
}
|
|
|
|
impl Zip {
|
|
/// Add a file. Already-compressed data (images) is stored; the rest is deflated.
|
|
pub fn add(&mut self, name: &str, data: &[u8], compress: bool) {
|
|
let compression = if compress {
|
|
Compression::Deflated
|
|
} else {
|
|
Compression::Stored
|
|
};
|
|
let _ = self.writer.add(name, data, compression);
|
|
}
|
|
|
|
pub fn finish(self) -> Vec<u8> {
|
|
self.writer.finish().unwrap_or_default()
|
|
}
|
|
}
|