我正在使用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