Skip to content

Commit 353ea9c

Browse files
committed
Fix issue osdn.net #43374: Cannot create a report for all pages at once when comparing images from multiple pages,
1 parent 4febe4a commit 353ea9c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+406
-231
lines changed

Src/ImgMergeFrm.cpp

Lines changed: 73 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2201,22 +2201,61 @@ void CImgMergeFrame::OnImgCompareExtractedText()
22012201
GetMainFrame()->ShowTextMergeDoc(m_pDirDoc, m_filePaths.GetSize(), text, desc, _T(".yaml"));
22022202
}
22032203

2204+
bool CImgMergeFrame::GenerateReport(const String& sFileName) const
2205+
{
2206+
return GenerateReport(sFileName, true);
2207+
}
2208+
22042209
/**
22052210
* @brief Generate report from file compare results.
22062211
*/
2207-
bool CImgMergeFrame::GenerateReport(const String& sFileName) const
2212+
bool CImgMergeFrame::GenerateReport(const String& sFileName, bool allPages) const
22082213
{
2209-
String imgdir_full, imgdir, imgfilepath[3], diffimg_filename[3], path, name, ext;
2214+
String imgdir_full, imgdir, path, name, ext;
2215+
String imgfilepath[3];
2216+
std::vector<std::array<String, 3>> diffimg_filename;
22102217
paths::SplitFilename(sFileName, &path, &name, &ext);
22112218
imgdir_full = paths::ConcatPath(path, name) + _T(".files");
22122219
imgdir = paths::FindFileName(imgdir_full);
22132220
paths::CreateIfNeeded(imgdir_full);
2214-
for (int i = 0; i < m_pImgMergeWindow->GetPaneCount(); ++i)
2221+
2222+
int curPages[3]{};
2223+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2224+
curPages[pane] = m_pImgMergeWindow->GetCurrentPage(pane);
2225+
if (allPages)
22152226
{
2216-
imgfilepath[i] = ucr::toTString(m_pImgMergeWindow->GetFileName(i));
2217-
diffimg_filename[i] = strutils::format(_T("%s/%d.png"), imgdir, i + 1);
2218-
m_pImgMergeWindow->SaveDiffImageAs(i, ucr::toUTF16(strutils::format(_T("%s\\%d.png"), imgdir_full, i + 1)).c_str());
2227+
diffimg_filename.resize(m_pImgMergeWindow->GetMaxPageCount());
2228+
for (int page = 0; page < m_pImgMergeWindow->GetMaxPageCount(); ++page)
2229+
{
2230+
m_pImgMergeWindow->SetCurrentPageAll(page);
2231+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2232+
{
2233+
imgfilepath[pane] = ucr::toTString(m_pImgMergeWindow->GetFileName(pane));
2234+
const int curPage = m_pImgMergeWindow->GetCurrentPage(pane) + 1;
2235+
diffimg_filename[page][pane] = strutils::format(_T("%s/%d_%d.png"),
2236+
imgdir, pane + 1, curPage);
2237+
m_pImgMergeWindow->SaveDiffImageAs(pane,
2238+
ucr::toUTF16(strutils::format(_T("%s\\%d_%d.png"),
2239+
imgdir_full, pane + 1, curPage)).c_str());
2240+
}
2241+
}
2242+
}
2243+
else
2244+
{
2245+
diffimg_filename.resize(1);
2246+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2247+
{
2248+
imgfilepath[pane] = ucr::toTString(m_pImgMergeWindow->GetFileName(pane));
2249+
const int curPage = m_pImgMergeWindow->GetCurrentPage(pane) + 1;
2250+
diffimg_filename[0][pane] = strutils::format(_T("%s/%d_%d.png"),
2251+
imgdir, pane + 1, curPage);
2252+
m_pImgMergeWindow->SaveDiffImageAs(pane,
2253+
ucr::toUTF16(strutils::format(_T("%s\\%d_%d.png"),
2254+
imgdir_full, pane + 1, curPage)).c_str());
2255+
}
22192256
}
2257+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2258+
m_pImgMergeWindow->SetCurrentPage(pane, curPages[pane]);
22202259

22212260
UniStdioFile file;
22222261
if (!file.Open(sFileName, _T("wt")))
@@ -2246,17 +2285,21 @@ bool CImgMergeFrame::GenerateReport(const String& sFileName) const
22462285
_T("<body>\n")
22472286
_T("<table>\n")
22482287
_T("<tr>\n"));
2249-
for (int i = 0; i < m_pImgMergeWindow->GetPaneCount(); ++i)
2250-
file.WriteString(strutils::format(_T("<th class=\"title\">%s</th>\n"), imgfilepath[i]));
2251-
file.WriteString(
2252-
_T("</tr>\n")
2253-
_T("<tr>\n"));
2254-
for (int i = 0; i < m_pImgMergeWindow->GetPaneCount(); ++i)
2288+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2289+
file.WriteString(strutils::format(_T("<th class=\"title\">%s</th>\n"), imgfilepath[pane]));
2290+
file.WriteString(_T("</tr>\n"));
2291+
for (const auto filenames: diffimg_filename)
2292+
{
22552293
file.WriteString(
2256-
strutils::format(_T("<td><div class=\"img\"><img src=\"%s\" alt=\"%s\"></div></td>\n"),
2257-
diffimg_filename[i], diffimg_filename[i]));
2294+
_T("<tr>\n"));
2295+
for (int pane = 0; pane < m_pImgMergeWindow->GetPaneCount(); ++pane)
2296+
file.WriteString(
2297+
strutils::format(_T("<td><div class=\"img\"><img src=\"%s\" alt=\"%s\"></div></td>\n"),
2298+
filenames[pane], filenames[pane]));
2299+
file.WriteString(
2300+
_T("</tr>\n"));
2301+
}
22582302
file.WriteString(
2259-
_T("</tr>\n")
22602303
_T("</table>\n")
22612304
_T("</body>\n")
22622305
_T("</html>\n"));
@@ -2270,11 +2313,24 @@ void CImgMergeFrame::OnToolsGenerateReport()
22702313
{
22712314
String s;
22722315
CString folder;
2273-
2316+
BOOL allPages = true;
2317+
2318+
#if NTDDI_VERSION >= NTDDI_VISTA
2319+
CFileDialog dlg(FALSE, _T("htm"), nullptr,
2320+
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
2321+
_("HTML Files (*.htm,*.html)|*.htm;*.html|All Files (*.*)|*.*||").c_str());
2322+
dlg.AddCheckButton(1001, _("All pages").c_str(), true);
2323+
if (dlg.DoModal() != IDOK)
2324+
return;
2325+
dlg.GetCheckButtonState(1001, allPages);
2326+
s = dlg.GetPathName();
2327+
#else
22742328
if (!SelectFile(AfxGetMainWnd()->GetSafeHwnd(), s, false, folder, _T(""), _("HTML Files (*.htm,*.html)|*.htm;*.html|All Files (*.*)|*.*||"), _T("htm")))
22752329
return;
2330+
#endif
22762331

2277-
if (GenerateReport(s))
2332+
CWaitCursor waitstatus;
2333+
if (GenerateReport(s, allPages))
22782334
LangMessageBox(IDS_REPORT_SUCCESS, MB_OK | MB_ICONINFORMATION);
22792335
}
22802336

Src/ImgMergeFrm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class CImgMergeFrame : public CMergeFrameCommon,public IMergeDoc
5858
void UpdateAutoPaneResize();
5959
void UpdateSplitter();
6060
bool GenerateReport(const String& sFileName) const override;
61+
bool GenerateReport(const String& sFileName, bool allPages) const;
6162
const PackingInfo* GetUnpacker() const override { return &m_infoUnpacker; };
6263
void SetUnpacker(const PackingInfo* infoUnpacker) override { if (infoUnpacker) m_infoUnpacker = *infoUnpacker; };
6364
const PrediffingInfo* GetPrediffer() const override { return nullptr; };

Src/Merge.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3828,6 +3828,7 @@ BEGIN
38283828
IDS_IMGCMP_STATUS_RC_FMT "Rc: (%d, %d) "
38293829
IDS_IMGCMP_STATUS_FLIPPED_FMT "Flipped: %s "
38303830
IDS_IMGCMP_STATUS_ROTATED_FMT "Rotated: %d "
3831+
IDS_IMGCMP_REPORT_ALLPAGES "All pages"
38313832
END
38323833

38333834
STRINGTABLE

Src/Merge.vcxproj

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@
341341
<Optimization>MinSpace</Optimization>
342342
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
343343
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
344-
<PreprocessorDefinitions>WINVER=0x0501;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
344+
<PreprocessorDefinitions>WINVER=0x0601;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
345345
<StringPooling>true</StringPooling>
346346
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
347347
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -397,7 +397,7 @@
397397
<Optimization>MinSpace</Optimization>
398398
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
399399
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
400-
<PreprocessorDefinitions>WINVER=0x0501;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
400+
<PreprocessorDefinitions>WINVER=0x0601;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
401401
<StringPooling>true</StringPooling>
402402
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
403403
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -452,7 +452,7 @@
452452
<Optimization>MinSpace</Optimization>
453453
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
454454
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
455-
<PreprocessorDefinitions>WINVER=0x0501;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
455+
<PreprocessorDefinitions>WINVER=0x0601;NDEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
456456
<StringPooling>true</StringPooling>
457457
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
458458
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -612,7 +612,7 @@
612612
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
613613
<Optimization>Disabled</Optimization>
614614
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
615-
<PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
615+
<PreprocessorDefinitions>WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
616616
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
617617
<RuntimeTypeInfo>true</RuntimeTypeInfo>
618618
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -662,7 +662,7 @@
662662
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
663663
<Optimization>Disabled</Optimization>
664664
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
665-
<PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
665+
<PreprocessorDefinitions>WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
666666
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
667667
<RuntimeTypeInfo>true</RuntimeTypeInfo>
668668
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -711,7 +711,7 @@
711711
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
712712
<Optimization>Disabled</Optimization>
713713
<AdditionalIncludeDirectories>.;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
714-
<PreprocessorDefinitions>WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
714+
<PreprocessorDefinitions>WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
715715
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
716716
<RuntimeTypeInfo>true</RuntimeTypeInfo>
717717
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -761,7 +761,7 @@
761761
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
762762
<Optimization>Disabled</Optimization>
763763
<AdditionalIncludeDirectories>.;..\Externals\googletest\googletest\;..\Externals\googletest\googletest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
764-
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
764+
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
765765
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
766766
<RuntimeTypeInfo>true</RuntimeTypeInfo>
767767
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -810,7 +810,7 @@
810810
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
811811
<Optimization>Disabled</Optimization>
812812
<AdditionalIncludeDirectories>.;..\Externals\googletest\googletest\;..\Externals\googletest\googletest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
813-
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
813+
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
814814
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
815815
<RuntimeTypeInfo>true</RuntimeTypeInfo>
816816
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -858,7 +858,7 @@
858858
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
859859
<Optimization>Disabled</Optimization>
860860
<AdditionalIncludeDirectories>.;..\Externals\googletest\googletest\;..\Externals\googletest\googletest\include;.\CompareEngines;.\Common;..\Externals\crystaledit\editlib;.\diffutils;.\diffutils\lib;.\diffutils\src;..\Externals\boost;..\Externals\poco\Foundation\include;..\Externals\poco\XML\include;..\Externals\poco\Util\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
861-
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0501;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
861+
<PreprocessorDefinitions>TEST_WINMERGE;WINVER=0x0601;_DEBUG;WIN64;_WINDOWS;POCO_STATIC;EDITPADC_CLASS=;UNICODE;_AFX_NO_MFC_CONTROLS_IN_DIALOGS;_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS;GTEST_HAS_TR1_TUPLE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
862862
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
863863
<RuntimeTypeInfo>true</RuntimeTypeInfo>
864864
<PrecompiledHeader>Use</PrecompiledHeader>

Src/resource.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,6 +1494,7 @@
14941494
#define IDS_IMGCMP_STATUS_RC_FMT 44153
14951495
#define IDS_IMGCMP_STATUS_FLIPPED_FMT 44154
14961496
#define IDS_IMGCMP_STATUS_ROTATED_FMT 44155
1497+
#define IDS_IMGCMP_REPORT_ALLPAGES 44156
14971498
#define IDS_COMPARE_LARGE_FILES 44165
14981499
#define IDS_OCRRESULT_TEXTONLY 44166
14991500
#define IDS_OCRRESULT_POS_LINE 44167

0 commit comments

Comments
 (0)