metadata method
Implementation
Future<UDocMetadata> metadata() async {
final UPdfDict? source = info;
String? read(String key) {
final Object? value = source?[key];
return value is UPdfString ? value.text : null;
}
DateTime? readDate(String key) {
final Object? value = source?[key];
return value is UPdfString ? value.date : null;
}
final Object? language = await resolve(catalog?["Lang"]);
final Object? markInfo = await resolve(catalog?["MarkInfo"]);
final bool tagged = markInfo is UPdfDict && (markInfo["Marked"] as bool? ?? false);
return UDocMetadata(
title: read("Title"),
author: read("Author"),
subject: read("Subject"),
keywords: read("Keywords"),
creator: read("Creator"),
producer: read("Producer"),
creationDate: readDate("CreationDate"),
modificationDate: readDate("ModDate"),
language: language is UPdfString ? language.text : null,
pageCount: pageCount,
version: version,
tagged: tagged,
linearized: linearized,
encrypted: isEncrypted,
);
}