UTF-8 support (PDF 2.0 compliance) and ProcedureSets (for compatibility)

This commit is contained in:
Jakub Melka
2020-08-02 15:29:10 +02:00
parent fa30ed37bb
commit a2c5de0fe4
4 changed files with 89 additions and 4 deletions

View File

@ -2193,6 +2193,10 @@ QString PDFEncoding::convertTextString(const QByteArray& stream)
{
return convertFromUnicode(stream);
}
else if (hasUTF8LeadMarkings(stream))
{
return QString::fromUtf8(stream);
}
else
{
return convert(stream, Encoding::PDFDoc);
@ -2348,4 +2352,20 @@ bool PDFEncoding::hasUnicodeLeadMarkings(const QByteArray& stream)
return false;
}
bool PDFEncoding::hasUTF8LeadMarkings(const QByteArray& stream)
{
if (stream.size() >= 3)
{
if (static_cast<unsigned char>(stream[0]) == 239 &&
static_cast<unsigned char>(stream[1]) == 187 &&
static_cast<unsigned char>(stream[2]) == 191)
{
// UTF-8
return true;
}
}
return false;
}
} // namespace pdf