Unable to get Urdu data from database in my dotnet core 6 using PdfSharpCore

49 Views Asked by At

I am trying to get a Pdf Form with the specific user data, like name, age, dob, registration number, etc, The data stored in English or Dates are fine how ever name and address are in urdu which is shown as rectangle boxes

My Backend Code:

using PdfSharpCore;
using PdfSharpCore.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
using PdfSharpCore.Fonts;
using PdfSharpCore.Utils;
using PdfSharpCore.Drawing;

    [HttpGet("{serialNo}")]
    public async Task<IActionResult> GenerateNotificationsPdfForm(string serialNo)
    {
        Notifications notification = await repository.GetNotificationReport(serialNo); 
        JsonElement json = notification.Params.RootElement;
        Member member = await memberRepository.Get(json.GetProperty("MemberId").GetInt32());

        NotificationPdfModel data = new()
        {
            FullName = member.FullName,
            RegistranNumber = member.RegistrationNumbers.Where(r => r.Current).Select(s => s.Code).FirstOrDefault(),
            FatherName = member.FatherName,
            Dob = member.DateOfBirth,
            Education = member.MemberEducations.Select(s => s.SetupEducations.Degree).FirstOrDefault(),
            Occupation = member.MemberOccupations.Select(s => s.SetupOccupations.Name).FirstOrDefault(),
            MaritalStatus = member.MemberMaritalStatuses.Select(s => s.SetupMaritalStatus.Name).FirstOrDefault(),
            ContactNo = string.Join(",", memberRepository.GetMemberMobileNumbers(member)),
            PreviousAddress = memberRepository.GetMemberCurrentAddress(member),
            ResponsibilityName = member.MemberResponsibilities.Where(mr => mr.Current).Select(s => s.DisplayName).FirstOrDefault(),
            MubtadiCourse = member.CourseParticipants.Where(cp => cp.Course.Published && cp.Course.CourseType.StaticType == CourseType.StaticCourseTypes.MubtadiTarbiyatiCourse).Select(cp => new MemberCourseModel(){
                StartDate = cp.Course.StartDate,
                Location = cp.Course?.Address ?? cp.Course?.CourseLocation?.Address,
            }).FirstOrDefault(),
            MultazimCourse = member.CourseParticipants.Where(cp => cp.Course.Published && cp.Course.CourseType.StaticType == CourseType.StaticCourseTypes.MultazimTarbiyatiCourse).Select(cp => new MemberCourseModel(){
                StartDate = cp.Course.StartDate,
                Location = cp.Course?.Address ?? cp.Course?.CourseLocation?.Address,
            }).FirstOrDefault(),
            NisabBaraEMutaliya = json.GetProperty("NisabBaraEMutaliya").GetString(),
            TaluqMaAllah = json.GetProperty("TaluqMaAllah").GetString(),
            SamaOTaat = json.GetProperty("SamaOTaat").GetString(),
            SamaOBasar = json.GetProperty("SamaOBasar").GetString(),
            InfradiDawat = json.GetProperty("InfradiDawat").GetString(),
            JihadBilMaal = json.GetProperty("JihadBilMaal").GetString(),
        };

        var document = new PdfDocument();
        string HtmlContent = "<h1>"+data.Dob.Value.ToString("dd-MM-yyyy")+"</h1>";
        HtmlContent += "<h1 style='font-family: Alvi Nastaleeq;'>"+data.FullName+"</h1>";
        PdfGenerator.AddPdfPages(document, HtmlContent, PageSize.A4);

        byte[] response = null;
        
        using (MemoryStream ms = new MemoryStream())
        {
            document.Save(ms);
            response = ms.ToArray();
        }

        string FileName = "Test.pdf";

        return File(response, "application/pdf", FileName);
    }
0

There are 0 best solutions below