2017-06-13 14 views
0

GroupDocsビューアを使用してPDFを取得し、HTMLページを作成しています。私はSQL2012データベースのnvarchar(MAX)フィールドにHTMLを格納します。いくつかのテスト中にドキュメントの中に特殊文字(合字)が正しくレンダリングされていないということを今日学んだだけです。保存されている字体HTMLがレンダリングされていません

質問マークは、簡単に見つけられるように強調表示されています。

これらの合字(FL、FiのFF)が何らかの理由で失われています。私は自分のデータベースをチェックして、そこに正しく保存されているようだ。

私はページをロードするために使用しているJsonResultサーバーメソッドをチェックしました。私は、pageHtml文字列にcharがあるかどうかを調べるためにいくつかの混在した結果を得ています。

public async Task<JsonResult> LoadDocument(int contentID, int page) 
{ 
    try 
    { 
     var documentPageData = await APIAccess.Get<DocumentPageUserData>(DocumentPageData.GetDocumentPageRoute, contentID, CurrentUser.UserID, page); 

     JsonResult result = new JsonResult() 
     { 
      ContentEncoding = Encoding.Default, 
      ContentType = "application/json", 
      Data = new 
      { 
       pageHTML = documentPageData.DocumentPage.PageHtml //.Replace("?", "fl").Replace("?", "fi").Replace("?", "ff")  //Don't like this idea 
      }, 
      JsonRequestBehavior = JsonRequestBehavior.AllowGet, 
      MaxJsonLength = int.MaxValue 
     }; 

     return result; 
    } 
    catch (Exception ex) 
    { 
     return Json(string.Format("There was an error loading the page.\r\n\r\nDetails:\r\n{0}", ex.Message), 
      JsonRequestBehavior.AllowGet); 
    } 
} 

DocumentPage.Htmlにマウスを置いてHTMLとしてレンダリングするとうまくいくように見えます。ただし、Text Renderには<span>?</span>があります。 Text Renderがフォントを持っていないか、別の問題がある場合だけであるかどうかはわかりません。ページが要求されるまで、私はセッションストレージでHTMLテキストを格納し、クライアント側で

その後、私はそうのようなdivの中にそれをレンダリングします。

var externalHtml = sessionStorage.getItem(currentPage); 
$('.viewer').text(''); 
$('.viewer').append(externalHtml); 

私はネットワークトラフィックとクライアント側のhtmlを確認しようとしましたが、そのように見えますか?だから私はどこに私のキャラクターを失っているのか分からない。何か案は?

+0

IDE内のプレビューで、出力とは異なるフォントが使用されているようです(それぞれserifとsans-serif)。出力にはどのようなフォントを使うべきですか?それはあなたのPCで簡単に利用できるのか、CSSに含まれていますか? –

+0

良いキャッチ。私は、pdfからhtmlを作成するとき、Group Docs Viewerがフォントを埋め込んでいるのかどうか分かりません。私のPDFはサンセリフですが、フォントが正しく表示されているものと正確に一致するかどうかはわかりません。問題は、ユーザーがPDFで使用したフォントを持っている必要があるため、特定のフォントを選択してインクルードすることができないことです。 – JonD

+0

その領域のネットワークタブを確認し、スパンは\ u003cspan \ u003e?\ u003c/span \ u003eのようになります。レンダリングしようとする前に疑問符を付けているようです。サーバーにフォントが必要なのかもしれませんか? – JonD

答えて

1

JsonResultが正しくエンコードされていませんでした。私はContentEncoding = Encoding.DefaultContentEncoding = Encoding.UTF8に変更しました。その後、完全にレンダリングされました。一度... 2.5日間この作業をしています。

+0

あなたはそれが分かって嬉しい:) –

関連する問題