mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
Merge pull request #406 from duanyao/fix_offset_and_padding
Fix offset optimizing issue introduced by padding char (#398).
This commit is contained in:
commit
55b5b51f0e
@ -52,12 +52,19 @@ void HTMLTextLine::append_offset(double width)
|
|||||||
/*
|
/*
|
||||||
* If the last offset is very thin, we can ignore it and directly use it
|
* If the last offset is very thin, we can ignore it and directly use it
|
||||||
* But this should not happen often, and we will also filter near-zero offsets when outputting them
|
* But this should not happen often, and we will also filter near-zero offsets when outputting them
|
||||||
* So don't check it
|
* So don't check it.
|
||||||
|
*
|
||||||
|
* Offset must be appended immediately after the last real (non-padding) char, or the text optimizing
|
||||||
|
* algorithm may be confused: it may wrongly convert offsets at the beginning of a line to word-space.
|
||||||
*/
|
*/
|
||||||
if((!offsets.empty()) && (offsets.back().start_idx == text.size()))
|
|
||||||
|
auto offset_idx = text.size();
|
||||||
|
while (offset_idx > 0 && text[offset_idx - 1] == 0)
|
||||||
|
--offset_idx;
|
||||||
|
if((!offsets.empty()) && (offsets.back().start_idx == offset_idx))
|
||||||
offsets.back().width += width;
|
offsets.back().width += width;
|
||||||
else
|
else
|
||||||
offsets.emplace_back(text.size(), width);
|
offsets.emplace_back(offset_idx, width);
|
||||||
this->width += width;
|
this->width += width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user