PDFTron XOD Viewer未在ASP.NET Core Core MVC 6 Razor View中加载XOD文件。检查浏览器控制台显示错误:“浏览器链接:无法调用返回值回调:TypeError:无法获取未定义或空引用的属性”文件“。PDFTron XOD Viewer未在ASP.NET Core MVC 6上加载Razor View
浏览器显示消息:“请”代替WebViewer控件。我看到这个来自PDFTron WebViewer.js文件从下面的代码段:
else {
var supportErrorArray = new Array();
supportErrorArray.push("Please");
if (allowHTML5) {
supportErrorArray.push("use an HTML5 compatible browser");
if (allowSilverlight || allowFlash) {
supportErrorArray.push("or");
}
me.selectedType is none
从WebVeiwer.js
当我把警报在WebViewer.js
文件。 不支持PDFTron XODViewer ASP.NET Core MVC 6?
我使用的一种解决方法以校正通过检查WebViewer.js
脚本:
if(me.selectedType == null)
{
if (this.options.html5Options) {
$.extend(this.options, this.options.html5Options);
}
me._createHTML5();
}
MVC 6剃刀视图(文档/ Index.cshtml)标记是如下: -
@model XODViewer.Models.Document
@{
ViewBag.Title = "Document";
}
<script src="@Url.Content("~/lib/jquery/dist/jquery.js")"></script>
<script src="@Url.Content("~/lib/WebViewer.js")"></script>
<style>
#viewer {
width: 1024px;
height: 600px;
}
</style>
<script>
$(function() {
var docName = '@Html.Raw(Model.DocumentName)';
var viewerElement = document.getElementById('viewer');
var myWebViewer = new PDFTron.WebViewer({
path: '../../lib',
type: '../../lib/html5',
documentType: "xod",
initialDoc: "../../XodFiles/GettingStarted.xod",
config: '',
streaming: false,
enableAnnotations: false,
enableOfflineMode: false,
enableReadOnlyMode: true
}, viewerElement);
});
</script>
@Html.Raw(ViewBag.Message)
<div id="viewer" style="padding:10px; word-wrap:break-word;">
</div>
ASP .NET Core MVC 6解决方案看起来在附加的屏幕截图中。
我有如下的XOD已经设置内容类型: - 最后,上运行的解决方案,不显示
// Set up custom content types -associating file extension to MIME type
var provider = new FileExtensionContentTypeProvider();
// Add new mappings
provider.Mappings[".json"] = "application/json";
provider.Mappings[".woff"] = "application/font-woff";
provider.Mappings[".res"] = "text/plain";
provider.Mappings[".nmf"] = "text/plain";
provider.Mappings[".pexe"] = "text/plain";
provider.Mappings[".mem"] = "text/plain";
provider.Mappings[".brotli"] = "text/plain";
provider.Mappings[".xod"] = "application/vnd.ms-xpsdocument";
// Remove MP4 videos.
//provider.Mappings.Remove(".mp4");
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot", "XodFiles")),
RequestPath = new PathString("/XodFiles"),
ContentTypeProvider = provider
});
XOD查看器或文件XOD。运行页面和浏览器控制台的解决方案屏幕截图如下所示。
对于最后一张图片中“localhost/lib/webviewer.js”的404错误,“lib”文件夹实际上是托管路径吗?如果您在“lib”文件夹中说出图像,您可以使用“/lib/myimage.png”加载到您的网页吗?如果你得到了404,那么你的道路看起来是错的。 – Ryan
'lib'是一个托管文件夹。我已经把一个图像放在'lib'文件夹中,并且能够打开它。即使我能够从浏览器打开'WebViewer.js'文件。 –
我对“请”部分感到困惑。文字“请”出现?如果你得到的是WebViewer.js的404比我没有看到它的任何代码会被触发。最后,从您发布的代码中看出,这是旧版WebViewer(从2013年左右开始)。请更新到WebViewer 2.2.2。 – Ryan