///|
fn pdf_text_predefined_japan1_direct_codepoint_ranges(
name : @core.PdfName,
) -> Array[(Int, Int, Int)]? {
let text = pdf_text_string_of_name(name)
if text == "/90ms-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90ms_rksj_codepoint_ranges)
} else if text == "/90pv-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90pv_rksj_codepoint_ranges)
} else {
None
}
}
///|
fn pdf_text_predefined_japan1_direct_codepoint_sequence_table(
name : @core.PdfName,
) -> Array[(Int, Array[Int])] {
let text = pdf_text_string_of_name(name)
if text == "/90pv-RKSJ-H" {
@cmapdata.pdf_text_japan1_90pv_rksj_codepoint_sequence_table
} else {
@cmapdata.pdf_text_japan1_90ms_rksj_codepoint_sequence_table
}
}
///|
fn pdf_text_predefined_japan1_direct_charcode_ranges(
name : @core.PdfName,
) -> Array[(Int, Int, Int)]? {
let text = pdf_text_string_of_name(name)
if text == "/90ms-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90ms_rksj_charcode_ranges)
} else if text == "/90pv-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90pv_rksj_charcode_ranges)
} else {
None
}
}
///|
fn pdf_text_predefined_japan1_cid_ranges(
name : @core.PdfName,
) -> Array[(Int, Int, Int)]? {
let text = pdf_text_string_of_name(name)
guard pdf_text_predefined_cmap_has_text_orientation(text) else { return None }
if text == "/H" {
Some(@cmapdata.pdf_text_japan1_h_cid_ranges)
} else if text == "/V" {
Some(@cmapdata.pdf_text_japan1_v_cid_ranges)
} else if text == "/78-H" {
Some(@cmapdata.pdf_text_japan1_78_h_cid_ranges)
} else if text == "/78-V" {
Some(@cmapdata.pdf_text_japan1_78_v_cid_ranges)
} else if text == "/78-EUC-H" {
Some(@cmapdata.pdf_text_japan1_78_euc_h_cid_ranges)
} else if text == "/78-EUC-V" {
Some(@cmapdata.pdf_text_japan1_78_euc_v_cid_ranges)
} else if text == "/78-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_78_rksj_h_cid_ranges)
} else if text == "/78-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_78_rksj_v_cid_ranges)
} else if text == "/78ms-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_78ms_rksj_h_cid_ranges)
} else if text == "/78ms-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_78ms_rksj_v_cid_ranges)
} else if text == "/83pv-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_83pv_rksj_h_cid_ranges)
} else if text == "/90ms-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90ms_rksj_h_cid_ranges)
} else if text == "/90ms-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_90ms_rksj_v_cid_ranges)
} else if text == "/90msp-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90msp_rksj_h_cid_ranges)
} else if text == "/90msp-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_90msp_rksj_v_cid_ranges)
} else if text == "/90pv-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_90pv_rksj_h_cid_ranges)
} else if text == "/90pv-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_90pv_rksj_v_cid_ranges)
} else if text == "/Add-H" {
Some(@cmapdata.pdf_text_japan1_add_h_cid_ranges)
} else if text == "/Add-V" {
Some(@cmapdata.pdf_text_japan1_add_v_cid_ranges)
} else if text == "/Add-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_add_rksj_h_cid_ranges)
} else if text == "/Add-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_add_rksj_v_cid_ranges)
} else if text == "/EUC-H" {
Some(@cmapdata.pdf_text_japan1_euc_h_cid_ranges)
} else if text == "/EUC-V" {
Some(@cmapdata.pdf_text_japan1_euc_v_cid_ranges)
} else if text == "/Ext-H" {
Some(@cmapdata.pdf_text_japan1_ext_h_cid_ranges)
} else if text == "/Ext-V" {
Some(@cmapdata.pdf_text_japan1_ext_v_cid_ranges)
} else if text == "/Ext-RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_ext_rksj_h_cid_ranges)
} else if text == "/Ext-RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_ext_rksj_v_cid_ranges)
} else if text == "/Hojo-H" {
Some(@cmapdata.pdf_text_japan1_hojo_h_cid_ranges)
} else if text == "/Hojo-V" {
Some(@cmapdata.pdf_text_japan1_hojo_v_cid_ranges)
} else if text == "/Hojo-EUC-H" {
Some(@cmapdata.pdf_text_japan1_hojo_euc_h_cid_ranges)
} else if text == "/Hojo-EUC-V" {
Some(@cmapdata.pdf_text_japan1_hojo_euc_v_cid_ranges)
} else if text == "/NWP-H" {
Some(@cmapdata.pdf_text_japan1_nwp_h_cid_ranges)
} else if text == "/NWP-V" {
Some(@cmapdata.pdf_text_japan1_nwp_v_cid_ranges)
} else if text == "/RKSJ-H" {
Some(@cmapdata.pdf_text_japan1_rksj_h_cid_ranges)
} else if text == "/RKSJ-V" {
Some(@cmapdata.pdf_text_japan1_rksj_v_cid_ranges)
} else {
None
}
}
///|
fn pdf_text_japan1_codepoints_of_cid(cid : Int) -> Array[Int]? {
match
pdf_text_predefined_cid_range_lookup(
@cmapdata.pdf_text_japan1_codepoint_ranges, cid,
) {
Some(codepoint) => Some([codepoint])
None =>
pdf_text_predefined_pair_codepoints_table_lookup(
@cmapdata.pdf_text_japan1_codepoint_sequence_table, cid,
)
}
}
///|
fn pdf_text_predefined_japan1_codepoints(
ranges : Array[(Int, Int, Int)],
code : Int,
) -> Array[Int]? {
match pdf_text_predefined_cid_range_lookup(ranges, code) {
Some(cid) => pdf_text_japan1_codepoints_of_cid(cid)
None => None
}
}
///|
fn pdf_text_predefined_japan1_charcode(
ranges : Array[(Int, Int, Int)],
codepoint : Int,
) -> Int? {
let mut found = pdf_text_predefined_codepoint_range_charcode(
@cmapdata.pdf_text_japan1_codepoint_ranges, ranges, codepoint,
)
found = pdf_text_lower_optional_packed_charcode(
found,
pdf_text_predefined_sequence_table_charcode(
@cmapdata.pdf_text_japan1_codepoint_sequence_table, ranges, codepoint,
),
)
found
}
///|
fn pdf_text_predefined_japan1_builtin_codepoints(
name : @core.PdfName,
code : Int,
) -> Array[Int]? {
match pdf_text_predefined_japan1_direct_codepoint_ranges(name) {
Some(ranges) =>
match pdf_text_predefined_cid_range_lookup(ranges, code) {
Some(codepoint) => Some([codepoint])
None =>
pdf_text_predefined_pair_codepoints_table_lookup(
pdf_text_predefined_japan1_direct_codepoint_sequence_table(name),
code,
)
}
None =>
match pdf_text_predefined_japan1_cid_ranges(name) {
Some(ranges) => pdf_text_predefined_japan1_codepoints(ranges, code)
None => None
}
}
}
///|
fn pdf_text_predefined_japan1_builtin_charcode(
name : @core.PdfName,
codepoint : Int,
) -> Int? {
match pdf_text_predefined_japan1_direct_charcode_ranges(name) {
Some(ranges) => pdf_text_predefined_cid_range_lookup(ranges, codepoint)
None =>
match pdf_text_predefined_japan1_cid_ranges(name) {
Some(ranges) => pdf_text_predefined_japan1_charcode(ranges, codepoint)
None => None
}
}
}