void ResourcePrefixForNestedResources::Run() { // The path to the documents directory. System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName()); { System::SharedPtr fs = System::MakeObject(dataDir + u"Project1.mpp", System::IO::FileMode::Open); // Clearing resources under 'using' statement System::Details::DisposeGuard<1> __dispose_guard_1({ fs}); // ------------------------------------------ try { System::SharedPtr project = System::MakeObject(fs); System::SharedPtr options = GetSaveOptions(1); { System::SharedPtr stream = System::MakeObject(dataDir + u"document.html", System::IO::FileMode::Create); // Clearing resources under 'using' statement System::Details::DisposeGuard<1> __dispose_guard_0({ stream}); // ------------------------------------------ try { project->Save(stream, options); } catch(...) { __dispose_guard_0.SetCurrentException(std::current_exception()); } } } catch(...) { __dispose_guard_1.SetCurrentException(std::current_exception()); } } } #if defined(__MSVC__) #pragma warning( pop ) #elif defined(__GNUC__) #pragma GCC diagnostic pop #endif void ResourcePrefixForNestedResources::CssSaving(System::SharedPtr args) { System::SharedPtr stream = System::MakeObject(dataDir() + u"css/" + args->get_FileName(), System::IO::FileMode::Create); args->set_Stream(stream); args->set_KeepStreamOpen(false); args->set_Uri(dataDir() + u"css/" + args->get_FileName()); } void ResourcePrefixForNestedResources::FontSaving(System::SharedPtr args) { System::SharedPtr stream = System::MakeObject(dataDir() + u"fonts/" + args->get_FileName(), System::IO::FileMode::Create); args->set_Stream(stream); args->set_KeepStreamOpen(false); args->set_Uri(dataDir() + u"fonts/" + args->get_FileName()); } void ResourcePrefixForNestedResources::ImageSaving(System::SharedPtr args) { if (args->get_FileName().EndsWith(u"png")) { System::SharedPtr stream1 = System::MakeObject(dataDir() + u"resources/nestedResources/" + args->get_FileName(), System::IO::FileMode::Create); args->set_Stream(stream1); args->set_KeepStreamOpen(false); args->set_Uri(dataDir() + u"resources/" + args->get_FileName()); //args->set_NestedUri(dataDir() + u"nestedResources/" + args->get_FileName()); } else { System::SharedPtr stream2 = System::MakeObject(dataDir() + u"resources/" + args->get_FileName(), System::IO::FileMode::Create); args->set_Stream(stream2); args->set_KeepStreamOpen(false); args->set_Uri(dataDir() + u"resources/" + args->get_FileName()); } } System::SharedPtr ResourcePrefixForNestedResources::GetSaveOptions(int32_t pageNumber) { auto saveOptions = [&]{ auto tmp_0 = System::MakeObject(); tmp_0->set_Pages(System::MakeObject>()); tmp_0->set_IncludeProjectNameInPageHeader(false); tmp_0->set_IncludeProjectNameInTitle(false); tmp_0->set_PageSize(Aspose::Tasks::Visualization::PageSize::A3); tmp_0->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths); tmp_0->set_ReduceFooterGap(true); tmp_0->set_FontFaceTypes(Aspose::Tasks::FontFaceType::Ttf); tmp_0->set_ExportCss(Aspose::Tasks::ResourceExportType::AsFile); tmp_0->set_ExportFonts(Aspose::Tasks::ResourceExportType::AsFile); tmp_0->set_ExportImages(Aspose::Tasks::ResourceExportType::AsFile); return tmp_0; }(); System::SharedPtr program = System::MakeObject(); saveOptions->set_FontSavingCallback(program); saveOptions->set_CssSavingCallback(program); saveOptions->set_ImageSavingCallback(program); saveOptions->get_Pages()->Clear(); saveOptions->get_Pages()->Add(pageNumber); if (!System::IO::Directory::Exists(dataDir() + u"fonts")) { System::IO::Directory::CreateDirectory_(dataDir() + u"fonts"); } if (!System::IO::Directory::Exists(dataDir() + u"resources")) { System::IO::Directory::CreateDirectory_(dataDir() + u"resources"); } if (!System::IO::Directory::Exists(dataDir() + u"nestedResources")) { System::IO::Directory::CreateDirectory_(dataDir() + u"resources/nestedResources"); } if (!System::IO::Directory::Exists(dataDir() + u"css")) { System::IO::Directory::CreateDirectory_(dataDir() + u"css"); } return saveOptions; }