解决繁体ocr失败的问题

This commit is contained in:
yangjiaxuan 2024-05-22 14:59:39 +08:00
parent aa58689e1c
commit d731b3e1d1
5 changed files with 36 additions and 17 deletions

View File

@ -68,17 +68,17 @@ Dialog_AquireInto::Dialog_AquireInto(int fileNameStartIndex, QWidget* parent) :
ui->spin_index->setFixedWidth(160); ui->spin_index->setFixedWidth(160);
ui->cbox_digit->setFixedWidth(80); ui->cbox_digit->setFixedWidth(80);
bool Microteck_Vietnam = false; bool MicroteckOcr = false;
#if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC) #if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC)
if (1258 == lang_get_cur_code_page()) if (1258 == lang_get_cur_code_page() || 950 == lang_get_cur_code_page())
{ {
Microteck_Vietnam = true; MicroteckOcr = true;
ui->cbox_format->removeItem(11); ui->cbox_format->removeItem(11);
} }
#endif #endif
#if defined (x86_64) || defined (loongarch64) #if defined (x86_64) || defined (loongarch64)
if (!Microteck_Vietnam) if (!MicroteckOcr)
{ {
ui->cbox_format->removeItem(11); ui->cbox_format->removeItem(11);
} }

View File

@ -31,11 +31,11 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs,
ui->setupUi(this); ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
bool Microteck_Vietnam = false; bool MicroteckOcr = false;
#if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC) #if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC)
if (1258 == lang_get_cur_code_page()) if (1258 == lang_get_cur_code_page() || 950 == lang_get_cur_code_page())
{ {
Microteck_Vietnam = true; MicroteckOcr = true;
} }
#endif #endif
@ -52,7 +52,7 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs,
#if !defined (x86_64) && !defined (loongarch64) #if !defined (x86_64) && !defined (loongarch64)
m_supportType.push_back(SupportType(".pdf", "OCR->PDF - Portable Document Format", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES)); m_supportType.push_back(SupportType(".pdf", "OCR->PDF - Portable Document Format", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES));
if (!Microteck_Vietnam) if (!MicroteckOcr)
{ {
m_supportType.push_back(SupportType(".ofd", "OCR->OFD - Open Fixed-layout Document", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES)); m_supportType.push_back(SupportType(".ofd", "OCR->OFD - Open Fixed-layout Document", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES));
m_supportType.push_back(SupportType(".rtf", "OCR->RTF - Rich Text Format", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES)); m_supportType.push_back(SupportType(".rtf", "OCR->RTF - Rich Text Format", FILE_TYPE_ATTR_THIRD_HANDLER | FILE_TYPE_ATTR_CONTAIN_MULTI_PAGES));

View File

@ -130,7 +130,7 @@ HGResult Dialog_ExportImageFile::processMultiFileOcr()
bool useDefaultOcr = true; bool useDefaultOcr = true;
#if defined(OEM_ZHONGJING) && defined(HG_CMP_MSC) #if defined(OEM_ZHONGJING) && defined(HG_CMP_MSC)
if (1258 == lang_get_cur_code_page()) if (1258 == lang_get_cur_code_page() || 950 == lang_get_cur_code_page())
{ {
HGChar tmpFileName[260]; HGChar tmpFileName[260];
HGBase_GetTmpFileName("tif", tmpFileName, 260); HGBase_GetTmpFileName("tif", tmpFileName, 260);
@ -194,7 +194,13 @@ HGResult Dialog_ExportImageFile::processMultiFileOcr()
if (HGBASE_ERR_OK == ret) if (HGBASE_ERR_OK == ret)
{ {
ret = HGBASE_ERR_FAIL; ret = HGBASE_ERR_FAIL;
if (CreateOcrPdf(QString::fromLocal8Bit(tmpFileName), fileName, "vie")) QString lang("vie");
if (950 == lang_get_cur_code_page())
{
lang = "chi_tra";
}
if (CreateOcrPdf(QString::fromLocal8Bit(tmpFileName), fileName, lang.toStdString().c_str()))
{ {
useDefaultOcr = false; useDefaultOcr = false;
ret = HGBASE_ERR_OK; ret = HGBASE_ERR_OK;

View File

@ -60,11 +60,11 @@ Dialog_SaveAs::Dialog_SaveAs(bool isSaveAs, QWidget *parent) :
} }
} }
bool Microteck_Vietnam = false; bool MicroteckOcr = false;
#if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC) #if defined (OEM_ZHONGJING) && defined (HG_CMP_MSC)
if (1258 == lang_get_cur_code_page()) if (1258 == lang_get_cur_code_page() || 950 == lang_get_cur_code_page())
{ {
Microteck_Vietnam = true; MicroteckOcr = true;
} }
#endif #endif
@ -81,7 +81,7 @@ Dialog_SaveAs::Dialog_SaveAs(bool isSaveAs, QWidget *parent) :
#if !defined (x86_64) && !defined (loongarch64) #if !defined (x86_64) && !defined (loongarch64)
filters.append("OCR->PDF - Portable Document Format(*.pdf)"); filters.append("OCR->PDF - Portable Document Format(*.pdf)");
if (!Microteck_Vietnam) if (!MicroteckOcr)
{ {
filters.append("OCR->OFD - Open Fixed-layout Document(*.ofd)"); filters.append("OCR->OFD - Open Fixed-layout Document(*.ofd)");
if (m_isSaveAs) if (m_isSaveAs)

View File

@ -527,13 +527,19 @@ HGResult MainWindow::saveImage(HGImage image, const HGImgFmtSaveInfo* info, bool
bool useDefaultOcr = true; bool useDefaultOcr = true;
#if defined(OEM_ZHONGJING) && defined(HG_CMP_MSC) #if defined(OEM_ZHONGJING) && defined(HG_CMP_MSC)
if (1258 == lang_get_cur_code_page()) if (1258 == lang_get_cur_code_page() || 950 == lang_get_cur_code_page())
{ {
HGChar tmpFileName[260]; HGChar tmpFileName[260];
HGBase_GetTmpFileName("bmp", tmpFileName, 260); HGBase_GetTmpFileName("bmp", tmpFileName, 260);
if (HGBASE_ERR_OK == HGImgFmt_SaveImage(image, 0, NULL, tmpFileName)) if (HGBASE_ERR_OK == HGImgFmt_SaveImage(image, 0, NULL, tmpFileName))
{ {
if (CreateOcrPdf(QString::fromLocal8Bit(tmpFileName), QString::fromLocal8Bit(fileName), "vie")) QString lang("vie");
if (950 == lang_get_cur_code_page())
{
lang = "chi_tra";
}
if (CreateOcrPdf(QString::fromLocal8Bit(tmpFileName), QString::fromLocal8Bit(fileName), lang.toStdString().c_str()))
{ {
useDefaultOcr = false; useDefaultOcr = false;
ret = HGBASE_ERR_OK; ret = HGBASE_ERR_OK;
@ -4437,7 +4443,14 @@ void MainWindow::ocrMsgPumpFunc(HGMsgPump msgPump, const HGMsg *msg, HGPointer p
{ {
HGChar tmpFileName[260]; HGChar tmpFileName[260];
HGBase_GetTmpFileName("pdf", tmpFileName, 260); HGBase_GetTmpFileName("pdf", tmpFileName, 260);
if (CreateOcrPdf(*filePath, QString::fromLocal8Bit(tmpFileName), "vie"))
QString lang("vie");
if (950 == lang_get_cur_code_page())
{
lang = "chi_tra";
}
if (CreateOcrPdf(*filePath, QString::fromLocal8Bit(tmpFileName), lang.toStdString().c_str()))
{ {
DeleteFileA(filePath->toLocal8Bit().toStdString().c_str()); DeleteFileA(filePath->toLocal8Bit().toStdString().c_str());
MoveFileA(tmpFileName, filePath->toLocal8Bit().toStdString().c_str()); MoveFileA(tmpFileName, filePath->toLocal8Bit().toStdString().c_str());