co-authored by
Claude Opus 4.5
parent
fb80f5490d
commit
5f772071e4
+6
-3
@@ -175,7 +175,8 @@ fn extract_page_text_items(
|
||||
extract_text_from_operand(&op.operands[0], doc, &fonts, ¤t_font)
|
||||
{
|
||||
if !text.trim().is_empty() {
|
||||
let rendered_size = effective_font_size(current_font_size, &text_matrix);
|
||||
let rendered_size =
|
||||
effective_font_size(current_font_size, &text_matrix);
|
||||
items.push(TextItem {
|
||||
text,
|
||||
x: text_matrix[4],
|
||||
@@ -203,7 +204,8 @@ fn extract_page_text_items(
|
||||
}
|
||||
}
|
||||
if !combined_text.trim().is_empty() {
|
||||
let rendered_size = effective_font_size(current_font_size, &text_matrix);
|
||||
let rendered_size =
|
||||
effective_font_size(current_font_size, &text_matrix);
|
||||
items.push(TextItem {
|
||||
text: combined_text,
|
||||
x: text_matrix[4],
|
||||
@@ -227,7 +229,8 @@ fn extract_page_text_items(
|
||||
extract_text_from_operand(&op.operands[0], doc, &fonts, ¤t_font)
|
||||
{
|
||||
if !text.trim().is_empty() {
|
||||
let rendered_size = effective_font_size(current_font_size, &text_matrix);
|
||||
let rendered_size =
|
||||
effective_font_size(current_font_size, &text_matrix);
|
||||
items.push(TextItem {
|
||||
text,
|
||||
x: text_matrix[4],
|
||||
|
||||
+16
-3
@@ -202,7 +202,11 @@ fn merge_drop_caps(lines: Vec<TextLine>, base_size: f32) -> Vec<TextLine> {
|
||||
// 3. The character is uppercase
|
||||
let is_drop_cap = trimmed.len() <= 2
|
||||
&& line.items.first().map(|i| i.font_size).unwrap_or(0.0) >= base_size * 2.5
|
||||
&& trimmed.chars().next().map(|c| c.is_uppercase()).unwrap_or(false);
|
||||
&& trimmed
|
||||
.chars()
|
||||
.next()
|
||||
.map(|c| c.is_uppercase())
|
||||
.unwrap_or(false);
|
||||
|
||||
if is_drop_cap {
|
||||
let drop_char = trimmed.chars().next().unwrap();
|
||||
@@ -220,7 +224,12 @@ fn merge_drop_caps(lines: Vec<TextLine>, base_size: f32) -> Vec<TextLine> {
|
||||
let prev_trimmed = prev_text.trim();
|
||||
|
||||
// Check if this line starts with lowercase
|
||||
if prev_trimmed.chars().next().map(|c| c.is_lowercase()).unwrap_or(false) {
|
||||
if prev_trimmed
|
||||
.chars()
|
||||
.next()
|
||||
.map(|c| c.is_lowercase())
|
||||
.unwrap_or(false)
|
||||
{
|
||||
// Check if previous line exists and doesn't start with lowercase
|
||||
// (meaning this is the start of a paragraph)
|
||||
let is_para_start = if idx == 0 {
|
||||
@@ -228,7 +237,11 @@ fn merge_drop_caps(lines: Vec<TextLine>, base_size: f32) -> Vec<TextLine> {
|
||||
} else {
|
||||
let before = result[idx - 1].text();
|
||||
let before_trimmed = before.trim();
|
||||
!before_trimmed.chars().next().map(|c| c.is_lowercase()).unwrap_or(true)
|
||||
!before_trimmed
|
||||
.chars()
|
||||
.next()
|
||||
.map(|c| c.is_lowercase())
|
||||
.unwrap_or(true)
|
||||
};
|
||||
|
||||
if is_para_start {
|
||||
|
||||
Reference in New Issue
Block a user