Загрузка PDF в программе просмотра PDF Syncfusion - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть следующий код в моем cshtml:

<span id = "/C/documents/demo.pdf" class="viewDoc">Demo.pdf</span>

При нажатии на название документа, оно попадает в функцию viewDoc, ниже:

function viewDoc(docPath){
$.ajax({
    url: "/ViewDoc/LoadPDF",
    dataType: "text",
    type: "POST",
    data: docPath,
    success: function (data, textStatus, jqXHR) {
     $("#divViewer").ejPdfViewer({
            serviceUrl: “https://js.syncfusion.com/ejServices/api/PdfViewer”, 
            documentLoad: "load"
        });
         var divViewer= $("#divViewer").data("ejPdfViewer");
         obj.load(data["data"]);
    },
  });
}

Мое действие LoadPDF в контроллере выглядит следующим образом:

public Json LoadPDF (string docPath){
   PdfLoadedDocument loadedDocument = new PdfLoadedDocument(docPath);
   MemoryStream memoryStream = new MemoryStream();
   loadedDocument .Save(memoryStream);
   var bytes = memoryStream.ToArray();
   return JSON {new (Convert.ToBase64String(bytes))};  
}

Тем не менее, когда документ загружается в средство просмотра PDF Syncfusion, он отображает пустой PDF.

Когда я конвертирую Microsoft Word в PDF с помощью Syncfusion, затем преобразую его в строку base64 и отправляю строку в средство просмотра PDF, загрузка идет нормально.

Что-то не так я здесь делаю? ИЛИ в любом случае, чтобы загрузить PDF в программу просмотра PDF, не конвертируя ее в строку base64?

Спасибо за любую помощь

1 Ответ

0 голосов
/ 05 ноября 2018

Мы проанализировали фрагмент кода и подозреваем, что проблема связана с загрузкой строки base64 непосредственно в метод загрузки элемента управления PDF Viewer. Пожалуйста, обратитесь к измененному фрагменту кода для загрузки документа в элемент управления PDF Viewer. .

function viewDoc(docPath){
 $.ajax({
url: "/ViewDoc/LoadPDF",
dataType: "text",
type: "POST",
data: docPath,
success: function (data, textStatus, jqXHR) {
 $("#divViewer").ejPdfViewer({
        serviceUrl: “https://js.syncfusion.com/ejServices/api/PdfViewer”, 
        documentLoad: "load"
    });
     var divViewer= $("#divViewer").data("ejPdfViewer");
     **divViewer.load("data:application/pdf;base64," + data["data"]);**  //kindly load the document as pdf.
},
 });
   }

Примечание. Если вышеуказанное решение не помогло решить проблему. Пожалуйста, предоставьте нам образец и PDF-документ, в котором вы столкнулись с проблемой, чтобы мы могли больше проанализировать и помочь вам лучше.

...