mirror of
https://github.com/priyanshujain/margin.git
synced 2026-10-02 19:17:03 +00:00
feat(fonts): embed selected fonts in EPUB export
Embed each bundled font the book uses (fetched in the webview) with its own @font-face, point body text and headings at the chosen families, and drop the hardcoded Literata injection in the packager. System fonts are referenced by name with a serif fallback since they cannot be embedded.
This commit is contained in:
1 parent
7a2d7c6aff
commit
baf1154683
2 files changed
+63
-35
No files matched your search
@@ -5,9 +5,6 @@ use std::io::{Read, Write};
|
||||
use zip::write::SimpleFileOptions;
|
||||
use zip::{CompressionMethod, ZipArchive, ZipWriter};
|
||||
|
||||
static LITERATA: &[u8] = include_bytes!("../../public/fonts/Literata-VF.ttf");
|
||||
static LITERATA_ITALIC: &[u8] = include_bytes!("../../public/fonts/Literata-Italic-VF.ttf");
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct EpubFile {
|
||||
path: String,
|
||||
@@ -48,14 +45,6 @@ fn build(files: &[EpubFile]) -> Result<Vec<u8>, String> {
|
||||
zip.write_all(&bytes).map_err(|e| e.to_string())?;
|
||||
}
|
||||
|
||||
for (path, bytes) in [
|
||||
("OEBPS/fonts/Literata-VF.ttf", LITERATA),
|
||||
("OEBPS/fonts/Literata-Italic-VF.ttf", LITERATA_ITALIC),
|
||||
] {
|
||||
zip.start_file(path, deflated).map_err(|e| e.to_string())?;
|
||||
zip.write_all(bytes).map_err(|e| e.to_string())?;
|
||||
}
|
||||
|
||||
Ok(zip.finish().map_err(|e| e.to_string())?.into_inner())
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user