mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 04:50:09 +00:00
auto mode when --tounicode=0
This commit is contained in:
parent
8ab03df921
commit
983f6dfac2
@ -173,10 +173,9 @@ void HTMLRenderer::embed_font(const string & filepath, GfxFont * font, FontInfo
|
|||||||
*iter = tolower(*iter);
|
*iter = tolower(*iter);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO
|
|
||||||
* if parm->tounicode is 0, try the provided tounicode map first
|
* if parm->tounicode is 0, try the provided tounicode map first
|
||||||
*/
|
*/
|
||||||
info.use_tounicode = (is_truetype_suffix(suffix) || (param->tounicode > 0));
|
info.use_tounicode = (is_truetype_suffix(suffix) || (param->tounicode >= 0));
|
||||||
info.has_space = false;
|
info.has_space = false;
|
||||||
|
|
||||||
const char * used_map = nullptr;
|
const char * used_map = nullptr;
|
||||||
@ -314,6 +313,7 @@ void HTMLRenderer::embed_font(const string & filepath, GfxFont * font, FontInfo
|
|||||||
/*
|
/*
|
||||||
* Traverse all possible codes
|
* Traverse all possible codes
|
||||||
*/
|
*/
|
||||||
|
bool retried = false; // avoid infinite loop
|
||||||
for(int i = 0; i <= maxcode; ++i)
|
for(int i = 0; i <= maxcode; ++i)
|
||||||
{
|
{
|
||||||
if(!used_map[i])
|
if(!used_map[i])
|
||||||
@ -357,6 +357,22 @@ void HTMLRenderer::embed_font(const string & filepath, GfxFont * font, FontInfo
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// collision detected
|
||||||
|
if(param->tounicode == 0)
|
||||||
|
{
|
||||||
|
// in auto mode, just drop the tounicode map
|
||||||
|
if(!retried)
|
||||||
|
{
|
||||||
|
cerr << "ToUnicode CMap is not valid and got dropped" << endl;
|
||||||
|
retried = true;
|
||||||
|
codeset.clear();
|
||||||
|
info.use_tounicode = false;
|
||||||
|
memset(cur_mapping, -1, 0x10000 * sizeof(*cur_mapping));
|
||||||
|
memset(width_list, -1, 0x10000 * sizeof(*width_list));
|
||||||
|
i = -1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!name_conflict_warned)
|
if(!name_conflict_warned)
|
||||||
{
|
{
|
||||||
name_conflict_warned = true;
|
name_conflict_warned = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user