///|
/// Expand cpdf's bookmark-based output filename specification.
///
/// This ports the output-side `name_of_spec` helper. Bookmark-file parsing is
/// intentionally separate; callers pass the already-read bookmark list.
pub fn PdfDocument::bookmark_name_of_spec(
self : PdfDocument,
encoding : @metadata.PdfMetadataEncoding,
bookmarks : ArrayView[@bookmark.PdfBookmark],
split_level : Int,
spec : String,
sequence : Int,
filename : String,
start_page : Int,
end_page : Int,
) -> String raise @core.PdfError {
let _ = encoding
self.pdf_bookmark_name_spec_process_at_fields(
bookmarks,
split_level,
pdf_bookmark_name_spec_expand_percent(spec, sequence),
sequence,
filename,
start_page,
end_page,
)
}
///|
/// Compatibility wrapper for `PdfDocument::bookmark_name_of_spec`.
pub fn pdf_bookmark_name_of_spec(
encoding : @metadata.PdfMetadataEncoding,
bookmarks : ArrayView[@bookmark.PdfBookmark],
document : PdfDocument,
split_level : Int,
spec : String,
sequence : Int,
filename : String,
start_page : Int,
end_page : Int,
) -> String raise @core.PdfError {
document.bookmark_name_of_spec(
encoding, bookmarks, split_level, spec, sequence, filename, start_page, end_page,
)
}
///|
/// Source-spelled compatibility wrapper for cpdfbookmarks' `name_of_spec`.
pub fn pdf_name_of_spec(
encoding : @metadata.PdfMetadataEncoding,
bookmarks : ArrayView[@bookmark.PdfBookmark],
document : PdfDocument,
split_level : Int,
spec : String,
sequence : Int,
filename : String,
start_page : Int,
end_page : Int,
) -> String raise @core.PdfError {
document.bookmark_name_of_spec(
encoding, bookmarks, split_level, spec, sequence, filename, start_page, end_page,
)
}