///|
/// Add cpdf add-text lines to selected pages with an already resolved font.
///
/// This ports the document/page-selection layer after font selection: selected
/// one-based pages get page-local replacement callbacks, cpdf shift-coordinate
/// parsing, and page-line emission. Font embedding and existing-font discovery
/// remain separate slices.
pub fn PdfDocument::addtext_pages_with_font(
self : PdfDocument,
page_numbers : ArrayView[Int32],
lines : ArrayView[String],
time : @date.PdfStrftimeTime,
bookmarks : ArrayView[@bookmark.PdfBookmark],
font : PdfFont?,
fontpack : PdfFontPack?,
fontname : @core.PdfName,
font_object : @syntax.PdfObject?,
fontpack_font_objects : ArrayView[Int32],
font_size : Double,
line_spacing : Double,
colour : @colour.PdfContentColour,
position : @geometry.PdfPosition,
filename~ : String = "",
bates~ : Int32 = 1,
bates_pad~ : Int32? = None,
relative_to_box~ : @core.PdfName = pdf_page_mediabox_key(),
shift~ : String = "0 0",
opacity~ : Double = 1.0,
justification~ : @addtext.PdfAddTextJustification = PdfAddTextLeftJustify,
rotation~ : @addtext.PdfAddTextRotation = PdfAddTextRot0,
midline~ : Bool = false,
topline~ : Bool = false,
outline~ : Bool = false,
line_width~ : Double = 1.0,
underneath~ : Bool = false,
fast~ : Bool = false,
raw~ : Bool = false,
url_border~ : Bool = false,
) -> PdfDocument raise @core.PdfError {
if page_numbers.length() == 0 {
self
} else {
let pages = self.pages_of_pagetree()
pdf_addtext_validate_page_numbers(
page_numbers,
pages.length(),
"addtext_pages_with_font",
)
let shifts = self.parse_coordinates(shift)
let selected_pages = @core.pdf_number_set(page_numbers)
let rewritten : Array[@page.PdfPage] = Array(capacity=pages.length())
for index in 0.. PdfDocument raise @core.PdfError {
document.addtext_pages_with_font(
page_numbers,
lines,
time,
bookmarks,
font,
fontpack,
fontname,
font_object,
fontpack_font_objects,
font_size,
line_spacing,
colour,
position,
filename~,
bates~,
bates_pad~,
relative_to_box~,
shift~,
opacity~,
justification~,
rotation~,
midline~,
topline~,
outline~,
line_width~,
underneath~,
fast~,
raw~,
url_border~,
)
}