我正在使用GroupDocs查看器拍摄PDF并为其创建HTML页面。我将HTML存储在SQL2012数据库的nvarchar(MAX)字段中。今天我在一些测试中了解到,我们在文档中没有正确渲染某些特殊字符(连字)。存储的Ligature HTML不会呈现
问号突出显示,使他们很容易找到。
这些连字(FL,网络连接,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时,它看起来很棒。然而文本渲染有一个<span>?</span>
。不知道这是因为文本渲染没有字体或者是否存在其他问题。
在我存储在会话存储的HTML文本,直到页面被请求的客户端,然后我使其成为像这样一个div。
var externalHtml = sessionStorage.getItem(currentPage);
$('.viewer').text('');
$('.viewer').append(externalHtml);
我已经试过检查网络流量和客户端HTML,但它看起来像它?所以我不确定我在丢失我的角色。有任何想法吗?
它看起来像您的IDE内预览使用不同的字体比你的输出(serif与sans-serif,分别)。输出应该使用什么字体?它是否可以在您的PC上使用或包含在CSS中? –
好抓住。我不确定Group Docs Viewer是在从pdf创建html时嵌入字体的。我的PDF是sans-serif,但我无法确定字体是否与我错误渲染的字体完全匹配。问题是我无法选择特定的字体并将其包含在内,因为我需要用户在PDF中使用的字体。 – JonD
检查该区域的网络选项卡,并且跨度看起来像\ u003cspan \ u003e?\ u003c/span \ u003e似乎暗示在尝试呈现它之前它是一个问号。也许服务器需要字体? – JonD