This commit is contained in:
2021-11-05 20:06:45 +00:00
parent 2c3b3ccccb
commit 78c051a9c7

View File

@@ -434,12 +434,16 @@ namespace AyaNova.Biz
log.LogDebug("Initializing report system"); log.LogDebug("Initializing report system");
var ReportJSFolderPath = Path.Combine(ServerBootConfig.AYANOVA_CONTENT_ROOT_PATH, "resource", "rpt"); var ReportJSFolderPath = Path.Combine(ServerBootConfig.AYANOVA_CONTENT_ROOT_PATH, "resource", "rpt");
//language - mirror client's language so that pdf footer header stuff like date prints in their desired format, otherwise those items take the server's settings automatically // //===================
var lang = reportRequest.ClientMeta["LanguageName"].Value<string>(); // //TRY TO FORCE LANGUAGE
if (!string.IsNullOrWhiteSpace(lang)) // //language - mirror client's language so that pdf footer header stuff like date prints in their desired format, otherwise those items take the server's settings automatically
{ // var ClientLanguage = reportRequest.ClientMeta["LanguageName"].Value<string>();
lang = $"--lang={lang}"; // string LaunchParamLanguage = string.Empty;
} // if (!string.IsNullOrWhiteSpace(ClientLanguage))
// {
// LaunchParamLanguage = $"--lang={ClientLanguage}";
// }
// //======================
var lo = new LaunchOptions { Headless = true }; var lo = new LaunchOptions { Headless = true };
@@ -479,7 +483,7 @@ namespace AyaNova.Biz
//and so far in testing I see no reason to doubt him so removed it //and so far in testing I see no reason to doubt him so removed it
//https://github.com/puppeteer/puppeteer/issues/1825#issuecomment-792817748 //https://github.com/puppeteer/puppeteer/issues/1825#issuecomment-792817748
//testing //testing
lo.Args = new string[] { $"--disable-dev-shm-usage --no-sandbox --disable-gpu --no-zygote {lang}" }; lo.Args = new string[] { $"--disable-dev-shm-usage --no-sandbox --disable-gpu --no-zygote " };
} }
else else
{ {
@@ -489,7 +493,8 @@ namespace AyaNova.Biz
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision); await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
lo.Args = new string[] { $"{lang}" }; // //TRY TO FORCE LANGUAGE THROUGH STARTUP PARAMETER
// lo.Args = new string[] { $"{LaunchParamLanguage}" };
} }
System.Text.StringBuilder PageLog = new System.Text.StringBuilder(); System.Text.StringBuilder PageLog = new System.Text.StringBuilder();
@@ -500,38 +505,21 @@ namespace AyaNova.Biz
log.LogDebug($"Launching headless Browser now:"); log.LogDebug($"Launching headless Browser now:");
using (var browser = await Puppeteer.LaunchAsync(lo)) using (var browser = await Puppeteer.LaunchAsync(lo))
using (var page = await browser.NewPageAsync()) using (var page = await browser.NewPageAsync())
// using (var page = (await browser.PagesAsync()).First()) // using (var page = (await browser.PagesAsync()).First())//for language setting version
{ {
//track this process so it can be cancelled if it times out //track this process so it can be cancelled if it times out
ReportRenderManager.AddProcess(browser.Process.Id); ReportRenderManager.AddProcess(browser.Process.Id);
// var lang = reportRequest.ClientMeta; // //========================================
// // var overrideNavigatorLanguages = @"Object.defineProperty(navigator, 'languages', { // //TRY TO FORCE LANGUAGE ON ALL PLATFORMS
// // get: function() { // var JScriptOverrideLanguage = "Object.defineProperty(navigator, 'language', {get: function() {return '" + ClientLanguage + "';}});Object.defineProperty(navigator, 'languages', {get: function() {return ['" + ClientLanguage + "'];}});";
// // return ['es', 'bn', 'fr']; // await page.EvaluateFunctionOnNewDocumentAsync(JScriptOverrideLanguage);
// // } // await page.GoToAsync("about:blank");
// // });";
// var ov = @"Object.defineProperty(navigator, 'language', {
// get: function() {
// return 'ar-EG';
// }
// });
// Object.defineProperty(navigator, 'languages', {
// get: function() {
// return ['ar-EG', 'ko-KR'];
// }
// });";
// await page.EvaluateFunctionOnNewDocumentAsync(ov);
// await page.GoToAsync("about:blank");
// var res = (JArray)await page.EvaluateExpressionAsync("navigator.languages");
// var hdrs = new Dictionary<string, string>(); // var hdrs = new Dictionary<string, string>();
// hdrs.Add("Accept-Language", "ar-EG"); // hdrs.Add("Accept-Language", ClientLanguage);
// await page.SetExtraHttpHeadersAsync(hdrs); // await page.SetExtraHttpHeadersAsync(hdrs);
// //=========================================
@@ -686,8 +674,10 @@ namespace AyaNova.Biz
PdfOptions.DisplayHeaderFooter = report.DisplayHeaderFooter; PdfOptions.DisplayHeaderFooter = report.DisplayHeaderFooter;
if (report.DisplayHeaderFooter) if (report.DisplayHeaderFooter)
{ {
PdfOptions.HeaderTemplate = report.HeaderTemplate; var ClientPDFDate = reportRequest.ClientMeta["PDFDate"].Value<string>();
PdfOptions.FooterTemplate = report.FooterTemplate; var ClientPDFTime = reportRequest.ClientMeta["PDFTime"].Value<string>();
PdfOptions.HeaderTemplate = report.HeaderTemplate.Replace("PDFDate",ClientPDFDate).Replace("PDFTime",ClientPDFTime);
PdfOptions.FooterTemplate = report.FooterTemplate.Replace("PDFDate",ClientPDFDate).Replace("PDFTime",ClientPDFTime);;
} }
if (report.PaperFormat != ReportPaperFormat.NotSet) if (report.PaperFormat != ReportPaperFormat.NotSet)