2016-10-12 1 views
0

J'ai un rapport Crystal, qui est actuellement utilisé avec les applications Delphi 7 qui servent depuis des années sans aucun problème. Après le traitement des exportations de l'application rapport en format PDF.Caractères non valides sur le texte statique de Crystal Report

Récemment, j'ai fait une autre application en utilisant .Net 3.5 (Ne peut pas aller plus loin car nous utilisons quelques anciens contrôles personnalisés). Lorsque j'utilise le même rapport (pour exporter au format PDF) en utilisant cette application, je reçois quelques caractères supplémentaires sur "Static Labels".

Exemple:

Texte statique sur le rapport -> Klant nummer Ce que nous obtenons le PDF -> Klanti Nummer (Il y a un "i")

Pour tout le texte lables rapport a utilisé "Calibri" Police. Plus tard, j'ai remarqué que lorsque je change le type de police à "Arial" ça fonctionne très bien.

Mais je ne peux pas faire cela car il s'agit d'une facture officielle doit être dans le même format (police) de toutes les applications.

Pourquoi donne-t-il une sortie correcte de Delphi et pas de .Net?

Répondre

0

Nous pouvons modifier la police du rapport par programmation de la manière suivante, cela résout également le problème.

private void updateReport(ReportDocument doc) 
{ 
    Font ft; 
    foreach (Section sec in doc.ReportDefinition.Sections) 
    { 
    foreach (ReportObject obj in sec.ReportObjects) 
    { 
     if (obj.Kind == ReportObjectKind.FieldHeadingObject) 
     { 
     FieldHeadingObject fobj = (FieldHeadingObject)obj; 
     ft = new Font("Arial", fobj.Font.Size, fobj.Font.Style, fobj.Font.Unit, 
      fobj.Font.GdiCharSet, fobj.Font.GdiVerticalFont); 
     fobj.ApplyFont(ft); 
     } 
     else if (obj.Kind == ReportObjectKind.FieldObject) 
     { 
     FieldObject fobj = (FieldObject)obj; 
     ft = new Font("Arial", fobj.Font.Size, fobj.Font.Style, fobj.Font.Unit, 
      fobj.Font.GdiCharSet, fobj.Font.GdiVerticalFont); 
     fobj.ApplyFont(ft); 
     } 
     else if (obj.Kind == ReportObjectKind.TextObject) 
     { 
     TextObject fobj = (TextObject)obj; 
     ft = new Font("Arial", fobj.Font.Size, fobj.Font.Style, fobj.Font.Unit, 
      fobj.Font.GdiCharSet, fobj.Font.GdiVerticalFont); 
     fobj.ApplyFont(ft); 
     } 
    } 
    } 
}