调整驱动帮助文档路径

This commit is contained in:
yangjiaxuan 2023-08-21 17:52:00 +08:00
parent ae873f4779
commit e5311b9175
1 changed files with 101 additions and 19 deletions

View File

@ -1,4 +1,4 @@
#include "hg_scanner.h"
#include "hg_scanner.h"
#include "../wrapper/hg_log.h"
#include "sane/sane_option_definitions.h"
#include "scanner_setting.h"
@ -1554,28 +1554,111 @@ static int GetFilePath(const char* fileName, char* path, int maxLen)
path[pcName - fileName] = 0;
return 0;
}
int hg_scanner::setting_help(void* data, long* len)
std::string get_help_file_path()
{
int code_page = lang_get_cur_code_page();
std::string language = "chinese";
if (code_page == 20127)
{
language = "english";
}
std::string filename;
#if defined(HG_CMP_MSC)
#if defined(OEM_HANWANG)
filename = "HanvonScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_LISICHENG)
filename = "LanxumScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_CANGTIAN)
filename = "CumtennScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_ZHONGJING)
filename = "MicrotekScan_scanSettings_Help_manual.pdf";
if (language == "english")
filename = "MicrotekScan_scanSettings_Help_manual_EN.pdf";
#elif defined(OEM_ZIGUANG)
filename = "UniScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_NEUTRAL)
filename = "NeuScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_DELI)
filename = "DeliScan_scanSettings_Help_manual.pdf";
#else
filename = "HuaGoScan_scanSettings_Help_manual.pdf";
#endif
#else
std::string osName;
FILE* file = popen("cat /etc/issue | cut -d\' \' -f1", "r");
if (NULL != file)
{
char data[1024] = { 0 };
if (NULL != fgets(data, 1024, file))
osName = data;
pclose(file);
}
printf("osName=%s\n", osName.c_str());
if (osName.find("UnionTech") != std::string::npos)
{
#if defined(OEM_HANWANG)
filename = "../../entries/help/HanvonScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_LISICHENG)
filename = "../../entries/help/LanxumScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_CANGTIAN)
filename = "../../entries/help/CumtennScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_ZHONGJING)
filename = "../../entries/help/MicrotekScan_scanSettings_Help_manual.pdf";
if (language == "english")
filename = "../../entries/help/MicrotekScan_scanSettings_Help_manual_EN.pdf";
#elif defined(OEM_ZIGUANG)
filename = "../../entries/help/UniScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_NEUTRAL)
filename = "../../entries/help/NeuScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_DELI)
filename = "../../entries/help/DeliScan_scanSettings_Help_manual.pdf";
#else
filename = "../../entries/help/HuaGoScan_scanSettings_Help_manual.pdf";
#endif
}
else
{
#if defined(OEM_HANWANG)
filename = "../doc/HanvonScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_LISICHENG)
filename = "../doc/LanxumScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_CANGTIAN)
filename = "../doc/CumtennScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_ZHONGJING)
filename = "../doc/MicrotekScan_scanSettings_Help_manual.pdf";
if (m_currLang == "english")
filename = "../doc/MicrotekScan_scanSettings_Help_manual_EN.pdf";
#elif defined(OEM_ZIGUANG)
filename = "../doc/UniScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_NEUTRAL)
filename = "../doc/NeuScan_scanSettings_Help_manual.pdf";
#elif defined(OEM_DELI)
filename = "../doc/DeliScan_scanSettings_Help_manual.pdf";
#else
filename = "../doc/HuaGoScan_scanSettings_Help_manual.pdf";
#endif
}
#endif
char moduleName[256];
GetModuleName(NULL, moduleName, 256);
char exePath[256];
GetFilePath(moduleName, exePath, 256);
std:string exePath2 = exePath;
std::string helpfile = exePath2 + HELP_PATH;
std::string com = "xdg-open ";//注意空格保留
int code_page = lang_get_cur_code_page();
int ret = SCANNER_ERR_OK;
if (code_page == 20127)
{
helpfile = exePath2 + HELP_PATH_EN;
std::string helpfile = exePath2 + filename;
return helpfile;
}
int hg_scanner::setting_help(void* data, long* len)
{
std::string helpfile = get_help_file_path();
int ret = SCANNER_ERR_OK;
#if defined(WIN32) || defined(_WIN64)
com = "";
//helpfile.insert(0, hg_log::get_scanner_path());
FILE* src = fopen(helpfile.c_str(), "rb");
if (src)
fclose(src);
@ -1584,18 +1667,17 @@ int hg_scanner::setting_help(void* data, long* len)
if (access(helpfile.c_str(),F_OK) == -1)
#endif
{
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"open help file fail,not find file :%s code page :%d\r\n",helpfile.c_str(), code_page);
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "open help file fail,not find file :%s %d\r\n", helpfile.c_str(), 1);
ret = SCANNER_ERR_OPEN_FILE_FAILED;
return ret ;
}
com += helpfile;
#if defined(WIN32) || defined(_WIN64)
ShellExecuteA(NULL, "Open", com.c_str(), NULL, NULL, SW_SHOWNORMAL);
ShellExecuteA(NULL, "Open", helpfile.c_str(), NULL, NULL, SW_SHOWNORMAL);
#else
system(com.c_str());
system(helpfile.c_str());
#endif
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"App_Help_pdf Path is:%s Code Page is:%d\n",helpfile.c_str(), code_page);
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"scanSettings_Help_pdf Path is:%s %d\r\n",helpfile.c_str(), 1);
return ret;
}
int hg_scanner::setting_color_mode(void* data, long* len)