2016-10-12 11 views
0

Crystalレポートがあります。現在、何年も問題なく使用されているDelphi 7アプリケーションで使用されています。処理後、アプリケーションのエクスポートはPDFとしてレポートされます。Crystal Reportの静的テキストに無効な文字があります

最近私は、.Net 3.5を使用して別のアプリケーションを作成しました(古いカスタムコントロールを使用しているためこれ以上はできません)。そのアプリケーションを使用して同じレポート(PDFとしてエクスポートする)を使用すると、「静的ラベル」にいくつか追加の文字が表示されます。

例:レポートの

静的テキスト - >私たちはPDF上で何を得るKlantのnummer - すべてのテキストの場合> Klantiのnummer(追加の "i" があります)

は、レポートを使用していますlables "Calibri"フォント。後でフォントタイプを "Arial"に変更すると気になりました。

これは公式の請求書で、私はすべてのアプリケーションから同じ書式(フォント)にする必要があるので、これを行うことはできません。

なぜ、Delphiから正しく出力され、.NETでは出力されないのですか?

答えて

0

次の方法でレポートのフォントをプログラムで変更することもできます。また、問題を解決することもできます。

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); 
     } 
    } 
    } 
} 
関連する問題