2017-06-13 2 views
0

J'utilise GroupDocs Viewer pour prendre un PDF et créer une page HTML pour celui-ci. Je stocke le HTML dans un champ nvarchar (MAX) dans ma base de données SQL2012. Je viens d'apprendre aujourd'hui au cours de certains tests que nous avons des caractères spéciaux (ligatures) dans les documents qui ne sont pas rendus correctement.Ligature stockée HTML n'est pas rendu

Les points d'interrogation sont surlignés uniquement pour faciliter leur recherche.

Ces ligatures (fl, fi, ff) manquent pour une raison quelconque. J'ai vérifié ma base de données et ils semblent être stockés correctement.

J'ai vérifié la méthode de serveur JsonResult que j'utilise pour charger la page et j'obtiens des résultats mitigés essayant de déterminer si ma chaîne pageHtml a le 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); 
    } 
} 

Lorsque je souris sur DocumentPage.Html et que je demande à le rendre au format HTML, il est superbe. Le rendu de texte a un <span>?</span> cependant. Je ne sais pas si c'est juste parce que le Text Render n'a pas de police ou s'il y a un autre problème.

Du côté client je stocke le texte HTML dans le stockage de la session jusqu'à ce que la page est demandée alors je render dans un div comme si. J'ai essayé de vérifier le trafic réseau et le html du côté client, mais il semble que ce soit le cas? donc je ne suis pas sûr d'où je perds mes personnages. Des idées?

+0

Il semble que l'aperçu de votre IDE utilise une police différente de celle de votre sortie (serif vs sans-serif, respectivement). Quelle police devrait utiliser la sortie? Est-il facilement disponible sur votre PC ou inclus dans le CSS? –

+0

Bonne capture. Je ne suis pas sûr que Group Docs Viewer incorpore les polices lorsqu'il crée le code HTML à partir du pdf. Mon PDF est sans-serif, mais je ne peux pas dire si la police correspond exactement à ce que je ne reproduis pas correctement. Le problème est que je ne peux pas choisir une police spécifique et l'inclure car j'ai besoin d'avoir la police que l'utilisateur a utilisé dans le PDF. – JonD

+0

en vérifiant l'onglet réseau pour cette zone et l'étendue ressemble à \ u003cspan \ u003e? \ U003c/span \ u003e Semble impliquer qu'il s'agit d'un point d'interrogation avant d'essayer de le rendre. Peut-être que le serveur a besoin de la police? – JonD

Répondre

1

Le JsonResult n'était pas codé correctement. J'ai changé ContentEncoding = Encoding.Default en ContentEncoding = Encoding.UTF8. Après cela, il a parfaitement rendu. Soupir ... J'y ai travaillé pendant 2,5 jours.

+0

Je suis content que vous l'ayez compris :) –