diff --git a/pdf/src/build.rs b/pdf/src/build.rs index b85d4cc..addae67 100644 --- a/pdf/src/build.rs +++ b/pdf/src/build.rs @@ -157,8 +157,8 @@ pub struct PdfBuilder { } impl PdfBuilder where - SC: Cache>>, - OC: Cache, Arc>>, + SC: Cache>> + Default, + OC: Cache, Arc>> + Default, L: Log, { pub fn new(fileoptions: FileOptions<'_, SC, OC, L>) -> Self { diff --git a/pdf/src/content.rs b/pdf/src/content.rs index ec733b2..0e1a335 100644 --- a/pdf/src/content.rs +++ b/pdf/src/content.rs @@ -515,7 +515,7 @@ impl Object for Content { } } -#[derive(Debug, DataSize, DeepClone)] +#[derive(Debug, DataSize, DeepClone, Clone)] pub struct FormXObject { pub stream: Stream, } @@ -539,6 +539,13 @@ impl Object for FormXObject { }) } } +impl ObjectWrite for FormXObject { + fn to_primitive(&self, update: &mut impl Updater) -> Result { + let mut stream = self.stream.to_pdf_stream(update)?; + stream.info.insert("Subtype", Name::from("Form")); + Ok(stream.into()) + } +} #[allow(clippy::float_cmp)] // TODO pub fn serialize_ops(mut ops: &[Op]) -> Result> { diff --git a/pdf/src/object/mod.rs b/pdf/src/object/mod.rs index cc3e022..87d8a70 100644 --- a/pdf/src/object/mod.rs +++ b/pdf/src/object/mod.rs @@ -247,6 +247,11 @@ impl From> for Primitive { Primitive::Reference(value.inner) } } +impl From> for Ref { + fn from(value: RcRef) -> Self { + value.get_ref() + } +} impl RcRef { pub fn new(inner: PlainRef, data: Shared) -> RcRef { @@ -387,6 +392,11 @@ impl From> for MaybeRef { MaybeRef::Direct(r) } } +impl From for MaybeRef { + fn from(t: T) -> MaybeRef { + MaybeRef::Direct(t.into()) + } +} impl From> for Shared { fn from(r: MaybeRef) -> Shared { match r {