7

RDLC レポートでデフォルトのフォントを設定することはできますか? レポートのすべての要素でフォントを変更したくないレポートがあります。

4

3 に答える 3

5

デザインインターフェイスを使用して、レポート全体に使用されるフォントを変更する方法はありません。ただし、TahomaとVerdanaなど、あるフォントを別のフォントに置き換えようとしている場合は、コードビューを開いて([表示]> [コード])、そこで検索と置換を行うことができます。

ArialはReportingServicesレポートのデフォルトのフォントであるため、フォントはArial以外のフォントのコードでのみ定義されていることに注意してください。Arialから別のフォントに変更する必要がある場合は、デザイナーで手動で変更する必要があります。

于 2012-10-10T22:55:19.113 に答える
5

これを行う方法があります。それは実際にはかなり単純です。開始する前に rdl ファイルをバックアップしてください。この回答には、単純なアプリを作成する必要があります。

rdl を XML ドキュメントとして開きます。すべての TextRun ノードを見つけます。それぞれで Style ノードを探します。Style ノードが見つからない場合は、目的のフォントを指定して、内部に FontFamily ノードを持つものを追加します。Style ノードが見つかった場合は、FontFamily ノードを探します。見つかった場合は、必要に応じて、そのままにしておくか、値を目的のフォントに置き換えることができます。FontFamily ノードがない場合は、指定したフォントで追加します。

ETA: 私はコードを持っています。これは破壊的であることに注意してください。あなたのファイルは上書きされます。

pivate static void AddFontsToRdlc(string fileName, string defaultFont)
{
  if (!File.Exists(fileName))
  {
    // Report file does not exist
    return;
  }
  XmlDocument document = new XmlDocument();
  document.Load(fileName);
  string documentNamespace = document.DocumentElement.NamespaceURI;
  XmlNodeList nodes = document.GetElementsByTagName("TextRun");
  bool foundStyle = false;
  bool foundFontFamily = false;
  foreach (XmlNode node in nodes)
  {
    foundStyle = false;
    foundFontFamily = false;
    foreach (XmlNode childNode in node.ChildNodes)
    {
      if (childNode.Name == "Style")
      {
        foundStyle = true;
        foreach (XmlNode styleNode in childNode.ChildNodes)
        {
          if (styleNode.Name == "FontFamily")
          {
            // Change the font here if changing all fonts to the default font
            // Alternatively, specify what font should change to what font with a switch
            foundFontFamily = true;
            break;
          }
        }
        if (!foundFontFamily)
        {
          XmlElement fontElement = document.CreateElement("FontFamily", documentNamespace);
          fontElement.InnerText = defaultFont;
          childNode.AppendChild(fontElement);
        }
        break;
      }
    }
    if (!foundStyle)
    {
      XmlNode styleElement = document.CreateElement("Style", documentNamespace);
      XmlElement fontElement = document.CreateElement("FontFamily", documentNamespace);
      fontElement.InnerText = defaultFont;
      styleElement.AppendChild(fontElement);
      node.AppendChild(styleElement);
    }
  }
  document.Save(fileName);
}
于 2014-06-26T08:25:53.663 に答える
-6

[ツール] > [オプション] > [環境] > [フォントと色] に移動し、目的のフォントに変更します。

于 2012-10-10T09:03:23.553 に答える