diff --git a/Cargo.lock b/Cargo.lock index 8f858bd..2d8b7e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -295,6 +295,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" name = "hipdf" version = "0.0.0-development" dependencies = [ + "encoding_rs", "image", "jpeg-decoder", "lopdf", diff --git a/Cargo.toml b/Cargo.toml index aceddf0..069ce7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,6 +20,7 @@ name = "hipdf" path = "src/lib.rs" [dependencies] +encoding_rs = "0.8.35" image = { version = "0.25", default-features = false, features = ["webp"] } jpeg-decoder = "0.3.2" miniz_oxide = "0.8.9" diff --git a/src/ocg.rs b/src/ocg.rs index 7da9510..18d61ff 100644 --- a/src/ocg.rs +++ b/src/ocg.rs @@ -4,6 +4,7 @@ //! allowing you to organize content into groups that can be toggled on/off //! in PDF viewers. +use encoding_rs::mem::encode_latin1_lossy; use lopdf::{content::Operation, dictionary, Dictionary, Document, Object, ObjectId}; use std::collections::HashMap; @@ -150,7 +151,7 @@ impl OCGManager { for layer in &mut self.layers { let ocg_dict = dictionary! { "Type" => "OCG", - "Name" => Object::string_literal(layer.name.as_bytes().to_vec()), + "Name" => Object::string_literal(encode_latin1_lossy(&layer.name)), }; layer.id = doc.add_object(ocg_dict); }