我正在使用 GroupDocs Viewer 获取 PDF 并为其创建 HTML 页面。我将 HTML 存储在我的 SQL2012 数据库中的 nvarchar(MAX) 字段中。我今天刚刚在一些测试中了解到,我们在文档中有一些特殊字符(连字)无法正确呈现。
问号突出显示只是为了使它们易于查找。
由于某种原因,这些连字(f,fi,ff)丢失了。我检查了我的数据库,它们似乎正确地存储在那里。
我检查了我用来加载页面的 JsonResult 服务器方法,我得到了一些混合结果,试图确定我的 pageHtml 字符串是否具有字符。
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 时,它看起来很棒。然而,文本渲染器有一个<span>?</span>
。不确定这是否只是因为 Text Render 没有字体或者是否还有其他问题。
在客户端,我将 html 文本存储在会话存储中,直到页面被请求,然后我将其呈现为像这样的 div。
var externalHtml = sessionStorage.getItem(currentPage);
$('.viewer').text('');
$('.viewer').append(externalHtml);
我试过检查网络流量和客户端 html,但它看起来好像有?所以我不确定我在哪里失去了我的角色。有任何想法吗?