RDLC报告的默认字体

是否可以在RDLC报告中设置默认字体? 我不想在报告的每个元素中更改它,因为我不想在其中更改字体。


没有办法使用设计界面更改整个报表使用的字体。 但是,如果您试图用另一种字体替换一种字体,例如Tahoma与Verdana,那么您可以打开代码视图(视图>代码)并在那里执行查找和替换。

请注意,Arial是Reporting Services报告的默认字体,因此字体仅在Arial 以外的字体代码中定义。 如果您需要从Arial更改为另一种字体,则必须在设计器中手动执行此操作。


有一种方法可以做到这一点。 这其实很简单。 在开始之前备份您的rdl文件。 这个答案需要写一个简单的应用程序:

作为XML文档打开rdl。 找到所有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);
}

转到工具>选项>环境>字体和颜色,然后将其更改为所需的字体。

链接地址: http://www.djcxy.com/p/11269.html

上一篇: Default font for RDLC report

下一篇: How to avoid namespace in child nodes using FOR XML PATH?