Ротатива WKHTMLTOPDF рендеринг базы 64 изображения - PullRequest
0 голосов
/ 06 июля 2018

Добрый день,

В настоящее время я испытываю Rotativa.ViewAdPdf не отображает динамическое изображение base64 в ASP.net ... CSS выполняет свою работу по обработке дизайна, а rotativa - его рендеринг. Может кто-нибудь мне помочь? пожалуйста .. спасибо заранее

вот мой код:

CSHTML:

 <div Id="mainImageContainer">
                                    @if (Model.Question.MainQuestionImage != null)
                                    {
                                        <img alt="Main Image" src="@String.Format("data:{0};base64,{1}", Model.Question.MainQuestionImage.contentType, Model.Question.MainQuestionImage.content64base)" />

                                    }

                                </div>

Контроллер:

   public ActionResult RenderReportData(int schedId, int userId)
        {
            ScheduleExaminerModel model = new ScheduleExaminerModel();
            model = BaseMethods.GetDetails(x => x.ScheduleId == schedId && x.UserId == userId);

            ScheduleExaminerViewModel viewModel = new ScheduleExaminerViewModel();
            List<questionCorrectionViewModel> listQuestion = new List<questionCorrectionViewModel>();
            if (model != null)
            {
                viewModel.Id = model.Id;
                viewModel.User = model.User;
                viewModel.Schedule = model.Schedule;

                foreach (var item in model.Questions)
                {
                    questionCorrectionViewModel currenQuestionModel = new questionCorrectionViewModel();
                    bool iscorrect = checkAns(item);

                    currenQuestionModel.Question = item.Question;
                    currenQuestionModel.UserAnswer = item.UserAnswer;
                    currenQuestionModel.IsCorrect = iscorrect;

                    if (item.Question.QuestionType == "Essay")
                    {
                        currenQuestionModel.essayStatus = checkAnswerEssay(item);
                    }
                    listQuestion.Add(currenQuestionModel);
                }
                viewModel.CorrectedQuestion = listQuestion;



                Dictionary<string, string> cookieCollection = new Dictionary<string, string>();
                foreach (var key in Request.Cookies.AllKeys)
                {
                    cookieCollection.Add(key, Request.Cookies.Get(key).Value);
                }
                string footer = "--footer-right \"Date: [date] [time]\" " + "--footer-center \"Page: [page] of [toPage]\" --footer-line --footer-font-size \"9\" --footer-spacing 5 --footer-font-name \"calibri light\"";




                return new ViewAsPdf("UserExaminationReport", viewModel)
                {
                    Cookies = cookieCollection,
                    PageSize = Size.Letter,
                    CustomSwitches = footer
                };



            }
            else
            {
                return RedirectToAction("SystemMessage", new { message = "Record Not found" });
            }

        }

Модель:

 public class FileRepositoryItem : IDataChangeTracker
    {
        public int Id { get; set; }

        public byte[] byteContent { get; set; }
        public string contentType { get; set; }
        public decimal contentLenght { get; set; }


        public DateTime DateCreated { get; set; }
        public DateTime LastDateUpdated { get; set; }
        public string CreateUser { get; set; }
        public string LastUpdateUser { get; set; }
        public bool IsDeleted { get; set; }

        [NotMapped]
        public string content64base
        {
            get
            {
                return Convert.ToBase64String(byteContent,0,byteContent.Length);
            }
        }
    }

Я проверяю, выполняет ли CSHTML свою работу по возврату массива изображений base64 из контроллера, и кажется, что контроллер выполняет свою работу, вот пример

ОТДАНО CSHTML:

enter image description here

я пытался обновить rotativa и wkhtmltopdf в соответствии с решением, которое я нашел здесь, но не повезло, чтобы получить ожидаемый результат

введите описание ссылки здесь

надеюсь, что кто-то может помочь мне в этом ..

ОГРОМНОЕ СПАСИБО Rotativa и ASP.net

С уважением ко всем DEV, просматривающим это, пожалуйста, мне так нужна ваша помощь: D

1 Ответ

0 голосов
/ 06 июля 2018

уже решить проблему, мне просто нужно удалить rotativa для Nuget и вручную удалить все файлы, связанные двоичные файлы. и переустановите обновленный ротатива

...