2009-04-07 11 views
6

J'utilise Microsoft.Reporting.WebForms.LocalReport pour générer des PDF, tout fonctionne comme un charme, mais maintenant le marketing mal veut utiliser une police personnalisée (ils utilisent ce fou arguments comme "identité d'entreprise" et d'autres choses).Comment intégrer une police dans un fichier PDF avec RDLC

i déjà Goggled autour et maintenant je sais que

  • i besoin ReportViewer 2008 SP1 ou plus
  • la police doit être marquée comme embedding permis
  • la police doit être TrueType

mais cela ne fonctionne toujours pas. Je crois que RDLC ne supporte pas cette fonctionnalité, est-ce que quelqu'un sait si c'est le cas? Malheureusement, je ne peux pas utiliser les rapports côté serveur car il me manque un serveur de rapports.

tia

+0

Vous avez trouvé une solution? Avoir le même problème ... – gsharp

+1

Cela fonctionne pour nous - nous utilisons la version de Microsoft Reporting fournie avec Visual Studio 2010. –

Répondre

5

Intégration des oeuvres de police avec Microsoft Reporting 2010 ou plus tard, les restrictions suivantes encore

  • police doit être marqué comme embedding permis
  • police doit être de type TrueType

Vous pouvez rencontrer le problème que votre police est intégrée, mais votre fichier PDF affiche toujours le texte dans Arial. Cela m'est arrivé après que j'ai installé quelques nouvelles polices sur un Windows Server 2008 R2, le redémarrage de l'AppPool (ASP.NET MVC) n'a pas résolu ce problème, un redémarrage du serveur était nécessaire.

0

Je l'ai fait un test simple en utilisant la police Arial Narrow avec Visual Studio 2008 et il a bien fonctionné. J'ai testé le fichier PDF généré sur une machine virtuelle XP qui ne possède pas la police et cela s'est bien passé. Peut-être que c'est un problème avec la police?

Hmm, peut-être est cela - dans mon test, je l'ai utilisé Winforms.LocalReport pas WebForms. Peut-être que c'est le truc?

0

J'avais le même problème, mais j'ai trouvé que la police n'a pas besoin d'être intégrée. Le problème était avec l'attribut Font Face dans le HTML. L'éditeur HTML que nous utilisions a généré la balise police comme ceci:

<font face="Impact,Charcoal,sans-serif" size="6">Impact </font> 

Ce qui était très bien pour le Report Viewer, mais pour produire un fichier PDF, il devait ressembler à ceci:

<font face="Impact" size="6">Impact </font> 

Alors J'ai ajouté du code pour remplacer les valeurs d'attribut avant qu'elles ne soient liées au rapport:

htmlValue = htmlValue.Replace("Impact,Charcoal,sans-serif", "Impact") 
       .Replace("Arial,Helvetica,sans-serif", "Arial") 
       .Replace("Georgia,serif", "Georgia") 
       .Replace("Verdana,Geneva,sans-serif", "Verdana") 
       .Replace("'Courier New',Courier,monospace", "Courier New") 
       .Replace("'Lucida Console',Monaco,monospace", "Lucida Console") 
       .Replace("Tahoma,Geneva,sans-serif", "Tahoma") 
       .Replace("'Times New Roman',Times,serif", "Times New Roman") 
       .Replace("'Trebuchet MS',Helvetica,sans-serif", "Trebuchet MS"); 
Questions connexes