在 pdf 查看器 syncfusion 中加载 pdf

Loading a pdf in pdf viewer syncfusion

我的 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))};  
}

但是,当在 syncfusion pdf 查看器中加载文档时,它显示的是一个空的 PDF。

当我使用 syncfusion 将 Microsoft Word 转换为 PDF,然后将其转换为 base64 字符串并将该字符串发送到 PDF 查看器时,加载正常。

我在这里做错了什么吗?或者是否可以将 pdf 加载到 pdf 查看器而不将其转换为 base64 字符串?

感谢您的帮助

我们已经分析了代码片段,我们怀疑问题是由于将base64字符串直接加载到PDF Viewer控件的加载方法中,请参考修改后的代码片段以将文档加载到PDF中查看器控件。

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文档,以便我们进行更多分析,更好地帮助您。