Html to pdf fails on azure but works on local machine fine

The following html is converted to pdf fine locally but when deployed to azure give error ->

System.FormatException:
   at System.Text.StringBuilder.AppendFormatHelper (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.String.FormatHelper (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.String.Format (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at PWC.ESG.API.Services.MetricDashboardPdfService+<GenerateMetricDashboardPdf>d__13.MoveNext (PWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\PWC.ESG.API\Services\PDFGenerationServices\MetricDashboardPdfService.csPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 95)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at PWC.ESG.API.Controllers.MetricController+<GeneratePdfReport>d__24.MoveNext (PWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\PWC.ESG.API\Controllers\MetricController.csPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 208)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+TaskOfIActionResultExecutor+<Execute>d__0.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeActionMethodAsync>g__Awaited|12_0>d.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeNextActionFilterAsync>g__Awaited|10_0>d.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker+<<InvokeInnerFilterAsync>g__Awaited|13_0>d.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker+<<InvokeFilterPipelineAsync>g__Awaited|19_0>d.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker+<<InvokeAsync>g__Logged|17_1>d.MoveNext (Microsoft.AspNetCore.Mvc.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware+<<Invoke>g__AwaitRequestTask|6_0>d.MoveNext (Microsoft.AspNetCore.Routing, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware+<Invoke>d__5.MoveNext (Microsoft.AspNetCore.Authorization.Policy, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+<Invoke>d__6.MoveNext (Microsoft.AspNetCore.Authentication, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware+<Invoke>d__10.MoveNext (Microsoft.AspNetCore.ResponseCaching, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at PWC.ESG.Core.Middleware.CustomExceptionMiddleware+<Invoke>d__3.MoveNext (PWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\PWC.ESG.API\Core\Middleware\CustomExceptionMiddleware.csPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 59)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at PWC.ESG.Core.Middleware.ApiResponseMiddleware+<InvokeAsync>d__6.MoveNext (PWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: D:\a\1\s\PWC.ESG.API\Core\Middleware\ApiResponseMiddleware.csPWC.ESG.API, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: 121)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware+<Invoke>d__3.MoveNext (Microsoft.AspNetCore.ResponseCompression, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol+<ProcessRequests>d__214`1.MoveNext (Microsoft.AspNetCore.Server.Kestrel.Core, Version=3.1.11.0, Culture=neutral, PublicKeyToken=adb9793829ddae60)

full html:

"<html>
                <head>
                    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
                    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />         
                    <title>
                    </title>

                    <style>
					
						@font-face {
							font-family: \"PwCHelveticaNeue\";
							src: url(../fonts/8f4a1705-214a-4dd0-80b8-72252c37e688.ttf) format(\"truetype\");
						}
					
						html *
						{
						   color: #000 !important;
						   font-family: Helvetica !important;
						}
                        .f-12{
							font-size: 12px;
						}
						
						.f-16{
							font-size: 16px;
						}
						.f-18{
							font-size: 18px;
						}
						
						.f-w-500{
							font-weight: 500;
						}
						.f-w-600{
							font-weight: 600;
						}
						.f-w-700{
							font-weight: 700;
						}
						.f-w-bold{
							font-weight: bold;
						}
						.l-h{
							line-height: 1.25;
						}
						.l-h-2{
							line-height: 2;
						}
						.m-t-5{
							margin-top: 5px;
						}
						.m-t-7{
							margin-top: 7px;
						}
						.m-t-10{
							margin-top: 10px;
						}
						.m-t-20{
							margin-top: 20px;
						}
						.m-r-7{
							margin-right: 7px;
						}
						.m-b-10{
							margin-bottom: 10px;
						}
						.m-b-5{
							margin-bottom: 5px;
						}
						.m-b-7{
							margin-bottom: 7px;
						}						
						.m-tb-15{
							margin-top: 15px;
						}
						.m-tb-10{
							margin: 10px 0px;
						}
						.m-tb-5{
							margin: 5px 0px;
						}
						.m-tb-15{
							margin: 15px 0px;
						}
						
						
						.line {
						   border-bottom: solid 1px #979797;
						   border-top: none;
						   border-right: none;
						   border-left: none;
						}
						
						.box {
						  float: left;
						  height: 12px;
						  width: 12px;
						  border: 1px solid #44d7b6;
						  clear: both;
						  background-color: #44d7b6;
						}
						
						.f-normal{
							font-stretch: normal;
							font-style: normal;
							line-height: normal;
							letter-spacing: normal;
						}
                        
                        .pg-br {
                            page-break-before:always; clear:both
                        }
						
						.dot:before {
							content:\"• \";
						}
						
						.d-inline{
							display: inline-block;
						}

                        
                       table {
						  font-family: arial, sans-serif;
						  border-collapse: collapse;
						  width: 100%;
						}

						td, th {
						  border: 1px solid #dddddd;
						  text-align: left;
						  padding: 8px;
						}
		            </style>

                </head>
                <body>
					<div class='f-w-600 f-18 f-normal m-t-10 m-b-5'>SSB 2020 ASSESSMENT</div><div  class='f-12 l-h f-normal m-t-5 m-b-10'>Completed on Mar 20 2021</div><div  class='f-w-600 f-16 l-h f-normal m-t-5 m-b-7'>Reporting Process Maturity</div><div  class='f-14 f-normal l-h-2 m-t-5 m-b-7'>Greenhouse Gas Emissions</div><div  class='f-12 f-normal m-t-5 m-b-7'>Gross global Scope 1
 emissions, percentage methane, percentage covered under emissions-limiting regulations</div><div  class='f-12 m-t-10 m-b-7 m-r-7'><span f-normal class='f-w-600'>STANDARD</span> : SASB</div><div  class='f-12 m-t-10 m-b-7 m-r-7'><span f-normal class='f-w-600'>SECTORS</span> : Extractives & Minerals Processing</div><div  class='f-12  m-t-10 m-b-7 m-r-7'><span f-normal class='f-w-600' >INDUSTRIES</span> : Oil & Gas – Midstream</div><div  class='f-18 f-normal f-w-600 m-t-15 m-r-10 m-b-7 l-h-15'>Metric Score - 4/5 Overall </div><div  style='margin: 10px 0px 20px 0px;'> <img  src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBjbGFzcz0iaGlnaGNoYXJ0cy1yb290IiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7THVjaWRhIEdyYW5kZSZxdW90OywgJnF1b3Q7THVjaWRhIFNhbnMgVW5pY29kZSZxdW90OywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtmb250LXNpemU6MTJweDsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI0MDAiPjxkZXNjPkNyZWF0ZWQgd2l0aCBIaWdoY2hhcnRzIDkuMC4xPC9kZXNjPjxkZWZzPjxjbGlwUGF0aCBpZD0iaGlnaGNoYXJ0cy1vejh3a3k4LTEzLSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjU4MCIgaGVpZ2h0PSIzNzUiIGZpbGw9Im5vbmUiPjwvcmVjdD48L2NsaXBQYXRoPjxjbGlwUGF0aCBpZD0iaGlnaGNoYXJ0cy1vejh3a3k4LTIwIj48Y2lyY2xlIGN4PSIyOTAiIGN5PSIxODcuNSIgcj0iMTUwIj48L2NpcmNsZT48L2NsaXBQYXRoPjxjbGlwUGF0aCBpZD0iaGlnaGNoYXJ0cy1vejh3a3k4LTIxLSI+PHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iNTgwIiBoZWlnaHQ9IjM3NSIgZmlsbD0ibm9uZSI+PC9yZWN0PjwvY2xpcFBhdGg+PC9kZWZzPjxyZWN0IGZpbGw9InRyYW5zcGFyZW50IiBjbGFzcz0iaGlnaGNoYXJ0cy1iYWNrZ3JvdW5kIiB4PSIwIiB5PSIwIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQwMCIgcng9IjAiIHJ5PSIwIj48L3JlY3Q+PHJlY3QgZmlsbD0ibm9uZSIgY2xhc3M9ImhpZ2hjaGFydHMtcGxvdC1iYWNrZ3JvdW5kIiB4PSIxMCIgeT0iMTAiIHdpZHRoPSI1ODAiIGhlaWdodD0iMzc1Ij48L3JlY3Q+PGcgY2xhc3M9ImhpZ2hjaGFydHMtcGFuZS1ncm91cCIgZGF0YS16LWluZGV4PSIwIj48L2c+PGcgY2xhc3M9ImhpZ2hjaGFydHMtZ3JpZCBoaWdoY2hhcnRzLXhheGlzLWdyaWQgaGlnaGNoYXJ0cy1yYWRpYWwtYXhpcy1ncmlkIiBkYXRhLXotaW5kZXg9IjEiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDE5Ny41IEwgMzg4LjE2Nzc4Nzg0Mzg3MSA3Ni4xNDc0NTA4NDM3NTc4OCIgb3BhY2l0eT0iMSI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDE5Ny41IEwgNDQyLjY1ODQ3NzQ0NDI3MyAyNDMuODUyNTQ5MTU2MjQyMSIgb3BhY2l0eT0iMSI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDE5Ny41IEwgMzAwIDM0Ny41IiBvcGFjaXR5PSIxIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgc3Ryb2tlLXdpZHRoPSIxIiBkYXRhLXotaW5kZXg9IjEiIGNsYXNzPSJoaWdoY2hhcnRzLWdyaWQtbGluZSIgZD0iTSAzMDAgMTk3LjUgTCAxNTcuMzQxNTIyNTU1NzI2OTggMjQzLjg1MjU0OTE1NjI0MjEzIiBvcGFjaXR5PSIxIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJ0cmFuc3BhcmVudCIgc3Ryb2tlLXdpZHRoPSIxIiBkYXRhLXotaW5kZXg9IjEiIGNsYXNzPSJoaWdoY2hhcnRzLWdyaWQtbGluZSIgZD0iTSAzMDAgMTk3LjUgTCAyMTEuODMyMjEyMTU2MTI5IDc2LjE0NzQ1MDg0Mzc1NzkiIG9wYWNpdHk9IjEiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9InRyYW5zcGFyZW50IiBzdHJva2Utd2lkdGg9IjEiIGRhdGEtei1pbmRleD0iMSIgY2xhc3M9ImhpZ2hjaGFydHMtZ3JpZC1saW5lIiBkPSJNIDMwMCAxOTcuNSBMIDM4OC4xNjc3ODc4NDM4NzA5NCA3Ni4xNDc0NTA4NDM3NTc4NyIgb3BhY2l0eT0iMSI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0idHJhbnNwYXJlbnQiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDE5Ny41IEwgMjExLjgzMjIxMjE1NjEyOTA2IDc2LjE0NzQ1MDg0Mzc1Nzg4IiBvcGFjaXR5PSIxIj48L3BhdGg+PC9nPjxnIGNsYXNzPSJoaWdoY2hhcnRzLWdyaWQgaGlnaGNoYXJ0cy15YXhpcy1ncmlkIGhpZ2hjaGFydHMtcmFkaWFsLWF4aXMtZ3JpZCIgZGF0YS16LWluZGV4PSIxIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM0NTc3YzkiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDE5Ny41IEwgMzAwIDE5Ny41IEwgMzAwIDE5Ny41IEwgMzAwIDE5Ny41IEwgMzAwIDE5Ny41IEwgMzAwIDE5Ny41IiBvcGFjaXR5PSIxIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNDU3N2M5IiBzdHJva2Utd2lkdGg9IjEiIGRhdGEtei1pbmRleD0iMSIgY2xhc3M9ImhpZ2hjaGFydHMtZ3JpZC1saW5lIiBkPSJNIDMwMCAxNjcuNSBMIDMyOC41MzE2OTU0ODg4NTQ2IDE4OC4yMjk0OTAxNjg3NTE1NyBMIDMxNy42MzM1NTc1Njg3NzQyIDIyMS43NzA1MDk4MzEyNDg0MyBMIDI4Mi4zNjY0NDI0MzEyMjU4MyAyMjEuNzcwNTA5ODMxMjQ4NDMgTCAyNzEuNDY4MzA0NTExMTQ1NCAxODguMjI5NDkwMTY4NzUxNTcgTCAzMDAgMTY3LjUiIG9wYWNpdHk9IjEiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM0NTc3YzkiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDEzNy41IEwgMzU3LjA2MzM5MDk3NzcwOTIgMTc4Ljk1ODk4MDMzNzUwMzE2IEwgMzM1LjI2NzExNTEzNzU0ODQgMjQ2LjA0MTAxOTY2MjQ5Njg2IEwgMjY0LjczMjg4NDg2MjQ1MTYgMjQ2LjA0MTAxOTY2MjQ5Njg2IEwgMjQyLjkzNjYwOTAyMjI5MDc4IDE3OC45NTg5ODAzMzc1MDMxNiBMIDMwMCAxMzcuNSIgb3BhY2l0eT0iMSI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQ1NzdjOSIgc3Ryb2tlLXdpZHRoPSIxIiBkYXRhLXotaW5kZXg9IjEiIGNsYXNzPSJoaWdoY2hhcnRzLWdyaWQtbGluZSIgZD0iTSAzMDAgMTA3LjUgTCAzODUuNTk1MDg2NDY2NTYzOCAxNjkuNjg4NDcwNTA2MjU0NzMgTCAzNTIuOTAwNjcyNzA2MzIyNTUgMjcwLjMxMTUyOTQ5Mzc0NTMgTCAyNDcuMDk5MzI3MjkzNjc3NDIgMjcwLjMxMTUyOTQ5Mzc0NTMgTCAyMTQuNDA0OTEzNTMzNDM2MTcgMTY5LjY4ODQ3MDUwNjI1NDc2IEwgMzAwIDEwNy41IiBvcGFjaXR5PSIxIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNDU3N2M5IiBzdHJva2Utd2lkdGg9IjEiIGRhdGEtei1pbmRleD0iMSIgY2xhc3M9ImhpZ2hjaGFydHMtZ3JpZC1saW5lIiBkPSJNIDMwMCA3Ny41IEwgNDE0LjEyNjc4MTk1NTQxODQ0IDE2MC40MTc5NjA2NzUwMDYzMyBMIDM3MC41MzQyMzAyNzUwOTY4IDI5NC41ODIwMzkzMjQ5OTM3MyBMIDIyOS40NjU3Njk3MjQ5MDMyMyAyOTQuNTgyMDM5MzI0OTkzNzMgTCAxODUuODczMjE4MDQ0NTgxNTYgMTYwLjQxNzk2MDY3NTAwNjMzIEwgMzAwIDc3LjUiIG9wYWNpdHk9IjEiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM0NTc3YzkiIHN0cm9rZS13aWR0aD0iMSIgZGF0YS16LWluZGV4PSIxIiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmlkLWxpbmUiIGQ9Ik0gMzAwIDQ3LjUgTCA0NDIuNjU4NDc3NDQ0MjczIDE1MS4xNDc0NTA4NDM3NTc5IEwgMzg4LjE2Nzc4Nzg0Mzg3MSAzMTguODUyNTQ5MTU2MjQyMSBMIDIxMS44MzIyMTIxNTYxMjkwNiAzMTguODUyNTQ5MTU2MjQyMSBMIDE1Ny4zNDE1MjI1NTU3MjY5NSAxNTEuMTQ3NDUwODQzNzU3OSBMIDMwMCA0Ny41IiBvcGFjaXR5PSIxIj48L3BhdGg+PC9nPjxyZWN0IGZpbGw9Im5vbmUiIGNsYXNzPSJoaWdoY2hhcnRzLXBsb3QtYm9yZGVyIiBkYXRhLXotaW5kZXg9IjEiIHg9IjEwIiB5PSIxMCIgd2lkdGg9IjU4MCIgaGVpZ2h0PSIzNzUiPjwvcmVjdD48ZyBjbGFzcz0iaGlnaGNoYXJ0cy1heGlzIGhpZ2hjaGFydHMteGF4aXMgaGlnaGNoYXJ0cy1yYWRpYWwtYXhpcyIgZGF0YS16LWluZGV4PSIyIj48cGF0aCBmaWxsPSJub25lIiBjbGFzcz0iaGlnaGNoYXJ0cy1heGlzLWxpbmUiIGRhdGEtei1pbmRleD0iNyIgZD0iTSAzMDAgNDcuNSBBIDE1MCAxNTAgMCAxIDEgMjk5Ljg1MDAwMDAyNDk5OTkzIDQ3LjUwMDA3NDk5OTk5Mzc2IE0gMzAwIDE5Ny41IEEgMCAwIDAgMSAwIDMwMCAxOTcuNSI+PC9wYXRoPjwvZz48ZyBjbGFzcz0iaGlnaGNoYXJ0cy1heGlzIGhpZ2hjaGFydHMteWF4aXMgaGlnaGNoYXJ0cy1yYWRpYWwtYXhpcyIgZGF0YS16LWluZGV4PSIyIj48cGF0aCBmaWxsPSJub25lIiBjbGFzcz0iaGlnaGNoYXJ0cy1heGlzLWxpbmUiIGRhdGEtei1pbmRleD0iNyIgZD0iTSAzMDAgMTk3LjUgTCAzMDAgNDcuNSI+PC9wYXRoPjwvZz48ZyBjbGFzcz0iaGlnaGNoYXJ0cy1zZXJpZXMtZ3JvdXAiIGRhdGEtei1pbmRleD0iMyI+PGcgY2xhc3M9ImhpZ2hjaGFydHMtc2VyaWVzIGhpZ2hjaGFydHMtc2VyaWVzLTAgaGlnaGNoYXJ0cy1hcmVhLXNlcmllcyIgZGF0YS16LWluZGV4PSIwLjEiIG9wYWNpdHk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLDEwKSBzY2FsZSgxIDEpIiBjbGlwLXBhdGg9InVybCgjaGlnaGNoYXJ0cy1vejh3a3k4LTIwKSI+PHBhdGggZmlsbD0icmdiKDY4LDIxNSwxODIpIiBmaWxsLW9wYWNpdHk9IjAuNzUiIGQ9Ik0gMjkwIDY3LjUgTCA0MzIuNjU4NDc3NDQ0MjcyMiAxNDEuMTQ3NDUwODQzNzU1NDIgTCAzNDIuOTAwNjcyNzA2MzI1MSAyNjAuMzExNTI5NDkzNzQzNCBMIDIxOS40NjU3Njk3MjQ4OTg1NCAyODQuNTgyMDM5MzI0OTkwMyBMIDE3NS44NzMyMTgwNDQ1ODI3MyAxNTAuNDE3OTYwNjc1MDAyNzcgTCAyOTAgNjcuNSBMIDI5MCAxODcuNSBMIDI5MCAxODcuNSBMIDI5MCAxODcuNSBMIDI5MCAxODcuNSBMIDI5MCAxODcuNSBMIDI5MCAxODcuNSIgY2xhc3M9ImhpZ2hjaGFydHMtYXJlYSIgZGF0YS16LWluZGV4PSIwIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgZD0iTSAyOTAgNjcuNSBMIDQzMi42NTg0Nzc0NDQyNzIyIDE0MS4xNDc0NTA4NDM3NTU0MiBMIDM0Mi45MDA2NzI3MDYzMjUxIDI2MC4zMTE1Mjk0OTM3NDM0IEwgMjE5LjQ2NTc2OTcyNDg5ODU0IDI4NC41ODIwMzkzMjQ5OTAzIEwgMTc1Ljg3MzIxODA0NDU4MjczIDE1MC40MTc5NjA2NzUwMDI3NyBMIDI5MCA2Ny41IiBjbGFzcz0iaGlnaGNoYXJ0cy1ncmFwaCIgZGF0YS16LWluZGV4PSIxIiBzdHJva2U9IiM0NGQ3YjYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+PC9nPjxnIGNsYXNzPSJoaWdoY2hhcnRzLW1hcmtlcnMgaGlnaGNoYXJ0cy1zZXJpZXMtMCBoaWdoY2hhcnRzLWFyZWEtc2VyaWVzIiBkYXRhLXotaW5kZXg9IjAuMSIgb3BhY2l0eT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsMTApIHNjYWxlKDEgMSkiIGNsaXAtcGF0aD0ibm9uZSI+PC9nPjwvZz48dGV4dCB4PSIzMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGNsYXNzPSJoaWdoY2hhcnRzLXRpdGxlIiBkYXRhLXotaW5kZXg9IjQiIHN0eWxlPSJjb2xvcjojMzMzMzMzO2ZvbnQtc2l6ZToxOHB4O2ZpbGw6IzMzMzMzMzsiIHk9IjI0Ij48L3RleHQ+PHRleHQgeD0iMzAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBjbGFzcz0iaGlnaGNoYXJ0cy1zdWJ0aXRsZSIgZGF0YS16LWluZGV4PSI0IiBzdHlsZT0iY29sb3I6IzY2NjY2NjtmaWxsOiM2NjY2NjY7IiB5PSIyNCI+PC90ZXh0Pjx0ZXh0IHg9IjEwIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIGNsYXNzPSJoaWdoY2hhcnRzLWNhcHRpb24iIGRhdGEtei1pbmRleD0iNCIgc3R5bGU9ImNvbG9yOiM2NjY2NjY7ZmlsbDojNjY2NjY2OyIgeT0iMzk3Ij48L3RleHQ+PGcgY2xhc3M9ImhpZ2hjaGFydHMtYXhpcy1sYWJlbHMgaGlnaGNoYXJ0cy14YXhpcy1sYWJlbHMgaGlnaGNoYXJ0cy1yYWRpYWwtYXhpcy1sYWJlbHMiIGRhdGEtei1pbmRleD0iNyI+PHRleHQgeD0iMzAwIiBzdHlsZT0iY29sb3I6IzY2NjY2NjtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6MTFweDtmaWxsOiM2NjY2NjY7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDApIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSIzNi41IiBvcGFjaXR5PSIxIj5Qb2xpY2llcyBhbmQgUHJvY2VkdXJlczwvdGV4dD48dGV4dCB4PSI0NTYuOTI0MzI1MTg4NzAwMyIgc3R5bGU9ImNvbG9yOiM2NjY2NjY7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOjExcHg7ZmlsbDojNjY2NjY2OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwKSIgdGV4dC1hbmNob3I9InN0YXJ0IiB5PSIxNDMuNTEyMTk1OTI4MTMzNjgiIG9wYWNpdHk9IjEiPkNhbGN1bGF0aW9uIGFuZDx0c3BhbiBkeT0iMTQiIHg9IjQ1Ni45MjQzMjUxODg3MDAzIj7igIs8L3RzcGFuPkVzdGltYXRpb248L3RleHQ+PHRleHQgeD0iMzk2Ljk4NDU2NjYyODI1ODA1IiBzdHlsZT0iY29sb3I6IzY2NjY2NjtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6MTFweDtmaWxsOiM2NjY2NjY7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDApIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHk9IjMzNC45ODc4MDQwNzE4NjYzIiBvcGFjaXR5PSIxIj5EYXRhIE1hbmFnZW1lbnQ8L3RleHQ+PHRleHQgeD0iMjAzLjAxNTQzMzM3MTc0MTk1IiBzdHlsZT0iY29sb3I6IzY2NjY2NjtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6MTFweDtmaWxsOiM2NjY2NjY7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDApIiB0ZXh0LWFuY2hvcj0iZW5kIiB5PSIzMjcuOTg3ODA0MDcxODY2MyIgb3BhY2l0eT0iMSI+Q29udHJvbCBEZXNpZ24gYW5kPHRzcGFuIGR5PSIxNCIgeD0iMjAzLjAxNTQzMzM3MTc0MTk1Ij7igIs8L3RzcGFuPlJldmlldzwvdGV4dD48dGV4dCB4PSIxNDMuMDc1Njc0ODExMjk5NjUiIHN0eWxlPSJjb2xvcjojNjY2NjY2O2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxMXB4O2ZpbGw6IzY2NjY2NjsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMCkiIHRleHQtYW5jaG9yPSJlbmQiIHk9IjE0My41MTIxOTU5MjgxMzM3IiBvcGFjaXR5PSIxIj5Db25zb2xpZGF0aW9uIGFuZDx0c3BhbiBkeT0iMTQiIHg9IjE0My4wNzU2NzQ4MTEyOTk2NSI+4oCLPC90c3Bhbj5EaXNjbG9zdXJlPC90ZXh0Pjx0ZXh0IHg9IjAiIHN0eWxlPSJjb2xvcjojNjY2NjY2O2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZToxMXB4O2ZpbGw6IzY2NjY2NjsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMCkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHk9Ii05OTk5Ij41PC90ZXh0PjwvZz48ZyBjbGFzcz0iaGlnaGNoYXJ0cy1heGlzLWxhYmVscyBoaWdoY2hhcnRzLXlheGlzLWxhYmVscyBoaWdoY2hhcnRzLXJhZGlhbC1heGlzLWxhYmVscyIgZGF0YS16LWluZGV4PSI3Ij48L2c+PGcgY2xhc3M9ImhpZ2hjaGFydHMtY29udHJvbC1wb2ludHMiIGRhdGEtei1pbmRleD0iOTkiIGNsaXAtcGF0aD0idXJsKCNoaWdoY2hhcnRzLW96OHdreTgtMjEtKSI+PC9nPjwvc3ZnPg==' /> </div><div  class='f-12 f-normal' style='margin: 5px 10px 20px 0px;'><div class='box' style='margin-right: 10px;'></div>User Average on a scale from 1-5</div><br class='pg-br' //><div style='clear:both;'><div style='display:inline-block'><div class='f-18 f-w-600'>Reporting Process Maturity</div><div class='f-12 m-t-5'>Completed on Mar 20 2021</div><div class='f-14 f-normal m-t-10 m-b-5'>sdf asdf</div><div class='m-t-10 f-14 f-w-600'>Score:</div><div class='m-t-10 f-12'>Policies and Procedures : 4/5</div><div class='m-t-10 f-12'>Calculations and Estimations : 5/5</div><div class='m-t-10 f-12'>Data Management : 3/5</div><div class='m-t-10 f-12'>Control and Design Review : 4/5</div><div class='m-t-10 f-12'>Consolidation and Disclosure: 4/5</div></div><div style='display:inline-block;'><div class='f-w-600 f-normal f-14 m-tb-15'>Policies and Procedures</div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>What level of documentation formally exists to prepare the data? (e.g. defined policy, established criteria and estimation methodology including boundary, key inputs, key estimates, roles and responsibilities)</div><div class='f-12 m-t-7 f-normal'>High-level partial and/or informal documentation exists</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Do you have a governance process to manage changes to the documented metric guidance?</div><div class='f-12 m-t-7 f-normal'>Yes - but not formally documented</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdfasdf</div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Calculations and Estimation</div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How would you describe the level of estimation vs. actual data used in the preparation of this data?</div><div class='f-12 m-t-7 f-normal'>Majority of actual data (50-89% actual data)</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Are there conditions that increase the risk level for this data?</div><div class='f-12 m-t-7 f-normal dot'>Tied to executive compensation</div><div class='f-12 m-t-7 f-normal dot'>Tied to customer measure or incentive</div><div class='f-12 m-t-7 f-normal dot'>No / Not Applicable</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Is there a history of errors or restatements in this data?</div><div class='f-12 m-t-7 f-normal'>Few errors or restatements in the past</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdf</div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Data Management</div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How would you describe your data collection process?</div><div class='f-12 m-t-7 f-normal'>Formal routine, mostly manual process relying on structured spreadsheets or reports</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How long does the annual data collection process take?</div><div class='f-12 m-t-7 f-normal'>3-4 months</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How often do you collect the data?</div><div class='f-12 m-t-7 f-normal'>Bi-annually or quarterly</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Do data providers maintain an audit trail (supporting evidence) to assist their internal reporting and data gathering? (e.g. copies of invoices, key reports)</div><div class='f-12 m-t-7 f-normal'>No formal expectation</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdffdsf</div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Control Design and Review</div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>What processes exist to identify and mitigate potential risks to the quality of this data?</div><div class='f-12 m-t-7 f-normal'>Informally collaborate to address data quality risk</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Are there control activities over data quality in place? (secondary review, analytics, etc.)</div><div class='f-12 m-t-7 f-normal'>Informal control activities to focus on quality of data</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Please indicate which key controls you have in place, limited to those for which you have supporting evidence</div><div class='f-12 m-t-7 f-normal dot'>Regular assessment of the consistency of implementation of the policy/guidance supporting the preparation of the data across business units and geographies</div><div class='f-12 m-t-7 f-normal dot'>Review of the completeness and accuracy of the information obtained (processed and/or provided) from third-parties</div><div class='f-12 m-t-7 f-normal dot'>Regular review of process documentation</div><div class='f-12 m-t-7 f-normal dot'>Periodic analytics over data (trend analysis, ratio, benchmark, etc.)</div><div class='f-12 m-t-7 f-normal dot'>Other (please specify)</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Other key controls:</div><div class='f-12 m-t-7 f-normal'>asdfasdfsdf</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How automated are most of your controls?</div><div class='f-12 m-t-7 f-normal'>Partially automated</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdfasdfasdf</div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Consolidation and Disclosure</div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Are goals in place for this data?</div><div class='f-12 m-t-7 f-normal'>Clearly defined, used internally</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Is progress against goals and/or performance tied to compensation?</div><div class='f-12 m-t-7 f-normal dot'>No</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How confident are you that the data is free from errors?</div><div class='f-12 m-t-7 f-normal'>Moderate - it is possible the data has errors</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How transparent are you about your accounting methodology, calculation approach and key inputs?</div><div class='f-12 m-t-7 f-normal'>Provide a brief description</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Which groups are engaged with the review and/or approval of the data before it is released?</div><div class='f-12 m-t-7 f-normal dot'>Internal audit</div><div class='f-12 m-t-7 f-normal dot'>Internal subject matter experts</div><div class='f-12 m-t-7 f-normal dot'>General counsel or other legal review</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdfsfsd</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Are you comfortable with this data being publicly disclosed?</div><div class='f-12 m-t-7 f-normal'>Already publicly disclosed</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Where is the data disclosed?</div><div class='f-12 m-t-7 f-normal dot'>Website</div><div class='f-12 m-t-7 f-normal dot'>Sustainability/CSR report</div><div class='f-12 m-t-7 f-normal dot'>Proxy</div><div class='f-12 m-t-7 f-normal dot'>10-K</div><div class='f-12 m-t-7 f-normal dot'>Governmental agencies/regulators</div><div class='f-12 m-t-7 f-normal dot'>Others (please specify)</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Other disclosures:</div><div class='f-12 m-t-7 f-normal'>asdfasdf</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How do you rate the risk of not disclosing this data? (e.g. from minimal expectations up to a compliance requirement)</div><div class='f-12 m-t-7 f-normal'>High Risk</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>How would you describe the availability of the data?</div><div class='f-12 m-t-7 f-normal'>Data for similar metric related to the same topic available</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Similar metric name:</div><div class='f-12 m-t-7 f-normal'>asdfasdf</div></div><div class='m-tb-15'</div><div class='f-12 f-w-600 m-b-10'>Additional information:</div><div class='f-12 m-t-7 f-normal'>asdfasdf</div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Metric Data</div><div class='m-t-10'><div><div class='f-12 f-w-600 m-b-10'>Gross global Scope 1 emissions</div><div class='m-b-10'><div class='f-12 d-inline'>45  </div><div class=' f-12 d-inline'>Metric tons (t) CO₂-e</div></div><div class='f-12 m-t-10 m-b-10'>some ifno</div></div><div><div class='f-12 f-w-600 m-b-10'>Percentage of gross global Scope 1 emissions covered under emissions-limiting regulations</div><div class='m-b-10'><div class='f-12 d-inline'>12  </div><div class=' f-12 d-inline'>Percentage (%)</div></div><div class='f-12 m-t-10 m-b-10'>some ifno</div></div><div><div class='f-12 f-w-600 m-b-10'>Percentage of gross global Scope 1 emissions from methane emissions</div><div class='m-b-10'><div class='f-12 d-inline'>23  </div><div class=' f-12 d-inline'>Percentage (%)</div></div><div class='f-12 m-t-10 m-b-10'>some ifno</div></div></div><hr class='line'><div class='f-w-600 f-normal f-14 m-tb-15'>Uploaded files</div><table><tr><th class='f-12 f-w-600' style='width:500px' >FileName</th><th  class=' f-12 f-w-600'>Size(MB)</th><th  class=' f-12 f-w-600' >Info</th></tr><tr class='f-12'><td style='width:500px' >2021 SASB,TCFD 2020 company D test EM-IS-110a.2 (2).pdf</td><td>0.59MB</td><td>pdf</td></tr></table>

                </body>
            </html>

public async Task<byte[]> GenerateMetricDashboardPdf(string metricId)

    {

        byte[] fileBytes = null;

        MemoryStream stream;

        _htmlString = new StringBuilder();

        _htmlOptions = new HtmlLoadOptions();

        _document = new Document();

        SetupPdfSettings();

        try

        {

            var html = await GetHtml(metricId);

            using (stream = new MemoryStream())

            {

                _document = new Document(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), _htmlOptions);

                SetHeaderAndFooter();

                _document.Save(stream);

                fileBytes = stream.ToArray();

            }

        }

file-12.zip (6.7 KB)

@asposenilesh

The issue does not look like related to Aspose.PDF as we tested the scenario in our environment and did not face any issue. It seems like you are using StringBuilder.AppendFormat() somewhere in your application code and error is originating from there. Please try to change the method to StringBuilder.Append() and see if the issue still occurs.

locally on windows machine this is working fine!. we have linux docker on appservice where we are having problems. Does aspose pdf work with aspnet core 3.1 on linux docker?.. looks like some special characters are causing error leading to StringBuilder.AppendFormat() error I mentioned above only on linux docker environment.

Hi Guys found out the issue but need solution:

We have unicode string Metric tons (t) CO₂-e <- that 2 in CO subscritption 2 is causing problem at line ->
_document = new Document(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), _htmlOptions);

I did add UTF-8 to input -> HtmlLoadOptions _htmlOptions = new HtmlLoadOptions();
_htmlOptions.InputEncoding = “UTF-8”;

still it is not working on azure appservice with Linux machine. The above code is working on windows machine.
DO you guys have any solution so that it works?

@asposenilesh

Would you kindly make sure that libgdiplus package is installed and updated at your end. Also, please make sure to install all MS Fonts in the environment specially Helvetica and Times New Roman. Please feel free to let us know in case issue still persists. We will further proceed to assist you accordingly.

The fonts are not showing in the pdf, can you pls help me out ->

I put all the fonts in Asset/fonts/ which has Helvetica.ttf. The html string has font set to Helvetica

            html *
				{
				   color: #000 !important;
				   font-family: Helvetica !important;
				}

C# code. How do I set the fonts to the html string converting to pdf using the Helvetica fonts which is in the Asset/fonts/ folder? the pdf is showing aerial fonts instead of helvetica!

var dataDir = _rootPath + @"/Asset/fonts/";

var fs = new Aspose.Pdf.Text.FolderFontSource(dataDir);

FontRepository.Sources.Add(fs);

var html = await GetHtml(metricId);

_logger.LogInformation(“hhtml value in GenerateMetricDashboardPdf = {0}”, html);

using (stream = new MemoryStream())

{

_logger.LogInformation(“pdfdebuginfo: entered inside stream = new MemoryStream and starting new Document(new MemoryStream(System.Text.Encoding.UTF8”);

_document = new Document(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)), _htmlOptions);

foreach (Aspose.Pdf.Page page in _document.Pages)

{
// i thought this would work! but doesn’t
foreach (Aspose.Pdf.Text.Font pageFont in page.Resources.Fonts)

{

if (!pageFont.IsEmbedded){

pageFont.IsEmbedded = true;

}

}

}

SetHeaderAndFooter();

_document.Save(stream);

fileBytes = stream.ToArray();

}

@asposenilesh

Please try to implement the solution mentioned in this thread. The issue in the referenced thread was also related to the fonts and was resolved by mounting a volume. If you still keep experiencing the issue, please try to use .NET Core 2.x instead of 3.1 and share the results with us. We will log an investigation ticket for further investigation and share the ID with you.