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