2017-02-25 16 views
0

PDFTron XODビューアがASP.NETコアMVC 6 Razor ViewにXODファイルを読み込まない。ブラウザコンソールをチェックするとエラーが表示されます: "ブラウザリンク:戻り値コールバックの呼び出しに失敗しました:TypeError:未定義またはnull参照のプロパティ 'ファイルを取得できません"。PDFTron XODビューアがASP.NET Core MVC 6 Razorビューにロードされない

ブラウザはWebViewerコントロールの代わりに「Please」というメッセージを表示します。私は、これは以下のようにコードセクションからPDFTron WebViewer.jsファイルから来ていることを参照してください。私はWebViewer.jsファイルに警告を入れWebVeiwer.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 nonePDFTron XODViewerはASP.NET Core MVC 6をサポートしていませんか?

Iチェックによって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ソリューションは、添付のスクリーンショットのように見えます。 enter image description here

次のように私はすでにセットアップ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文書が表示されていないを実行している上。ページとブラウザコンソールを実行しているソリューションのスクリーンショットは次のとおりです。 enter image description here

+0

最後のイメージの「localhost/lib/webviewer.js」の404エラーでは、実際には「lib」フォルダはホストされたパスですか? "lib"フォルダに画像を置くと、 "/lib/myimage.png"を使ってウェブページに読み込むことができますか?あなたがそれを持つ404を取得した場合、あなたのパスは間違っているように見えます。 – Ryan

+0

'lib'はホストされたフォルダです。私は 'lib'フォルダにイメージを置いて、それを開くことができました。私もブラウザから「WebViewer.js」ファイルを開くことができました。 –

+1

「してください」という部分が混乱しています。 「Please」という文字が表示されていますか? WebViewer.jsの404を取得している場合は、どのようなコードがトリガされるのかわかりません。最後に、投稿したコードから、それはWebViewerの古いバージョンです(2013年頃)。 WebViewer 2.2.2にアップデートしてください。 – Ryan

答えて

0

Ryanが提案したようにWebViewer V2.2.2にアップグレードした後に解決されました。

関連する問題