Fix bug 56387

This commit is contained in:
Daria
2025-08-29 16:23:50 +03:00
parent 331401ea86
commit 7e6252a0bf
9 changed files with 76 additions and 11 deletions

View File

@ -493,6 +493,8 @@ namespace NExtractTools
class InputParams
{
public:
std::wstring* m_sDefaultFontName;
int* m_nDefaultFontSize;
std::wstring* m_sKey;
std::wstring* m_sFileFrom;
std::wstring* m_sFileTo;
@ -528,6 +530,8 @@ namespace NExtractTools
public:
InputParams()
{
m_sDefaultFontName = NULL;
m_nDefaultFontSize = NULL;
m_sKey = NULL;
m_sFileFrom = NULL;
m_sFileTo = NULL;
@ -561,6 +565,8 @@ namespace NExtractTools
}
~InputParams()
{
RELEASEOBJECT(m_sDefaultFontName);
RELEASEOBJECT(m_nDefaultFontSize);
RELEASEOBJECT(m_sKey);
RELEASEOBJECT(m_sFileFrom);
RELEASEOBJECT(m_sFileTo);
@ -686,6 +692,16 @@ namespace NExtractTools
RELEASEOBJECT(m_nFormatTo);
m_nFormatTo = new int(XmlUtils::GetInteger(sValue));
}
else if (_T("DefaultFontName") == sName)
{
RELEASEOBJECT(m_sDefaultFontName);
m_sDefaultFontName = new std::wstring(sValue);
}
else if (_T("DefaultFontSize") == sName)
{
RELEASEOBJECT(m_nDefaultFontSize);
m_nDefaultFontSize = new int(XmlUtils::GetInteger(sValue));
}
else if (_T("m_nCsvTxtEncoding") == sName)
{
RELEASEOBJECT(m_nCsvTxtEncoding);

View File

@ -45,7 +45,16 @@ namespace NExtractTools
rtfConvert.m_sTempFolder = convertParams.m_sTempDir;
rtfConvert.m_nUserLCID = (NULL != params.m_nLcid) ? *params.m_nLcid : -1;
if (params.m_sDefaultFontName != NULL)
rtfConvert.m_sDefaultFontName = *params.m_sDefaultFontName;
if (params.m_nDefaultFontSize != NULL)
{
rtfConvert.m_nDefaultFontSize = *params.m_nDefaultFontSize;
}
else
{
rtfConvert.m_nDefaultFontSize = NULL;
}
return 0 == rtfConvert.ConvertRtfToOOX(sFrom, sTo) ? 0 : AVS_FILEUTILS_ERROR_CONVERT;
}
_UINT32 docx_dir2rtf(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)

View File

@ -38,14 +38,16 @@ int main(int argc, char** argv)
std::wstring curr_dir = NSFile::GetProcessDirectory();
std::wstring wsep = FILE_SEPARATOR_STR;
std::wstring filename_in = curr_dir + wsep + L"123.docx";
std::wstring filename_out = curr_dir + wsep + L"123.pdf";
// std::wstring filename_in = curr_dir + wsep + L"Diva readme.rtf";
std::wstring filename_in = curr_dir + wsep + L"CONTRACT.rtf";
std::wstring filename_out = curr_dir + wsep + L"123.docx";
std::wstring fonts_dir = curr_dir + wsep + L"fonts";
std::wstring xml = curr_dir + wsep + L"params.xml";
std::wstring tmp_dir = NSDirectory::CreateDirectoryWithUniqueName(curr_dir);
CheckFonts(fonts_dir);
std::wstring fontname = L"Times New Roman";
// GENERATE XML
NSStringUtils::CStringBuilder oBuilder;
@ -88,7 +90,13 @@ int main(int argc, char** argv)
oBuilder.WriteString(fonts_dir + L"/AllFonts.js");
oBuilder.WriteString(L"</m_sAllFontsPath>");
// temp directory
oBuilder.WriteString(L"<DefaultFontName>");
oBuilder.WriteEncodeXmlString(fontname);
oBuilder.WriteString(L"</DefaultFontName>");
oBuilder.WriteString(L"<DefaultFontSize>");
oBuilder.WriteEncodeXmlString(L"24");
oBuilder.WriteString(L"</DefaultFontSize>");
// temp directory
oBuilder.WriteString(L"<m_sTempDir>");
oBuilder.WriteEncodeXmlString(tmp_dir);
oBuilder.WriteString(L"</m_sTempDir>");