Aspose.Slides for RSのレンダリング結果のカスタマイズ

カスタム拡張機能は、レポートのエクスポート中に追加の要素を追加したり、既存の要素を更新したりするオプションを提供します。

拡張アセンブリの作成方法

  1. .NETプロジェクトを作成し、Aspose.Slides.ReportingServices.dllへの参照を追加します。
  2. クラスを追加し、Aspose.Slides.ReportingServices.Extension.RenderingExtensionBaseを継承します。
  3. カスタム機能を追加するために、クラスの仮想メソッドをオーバーライドします。

Aspose.Slides for RSでエクスポートされたすべてのレポートに対して、テキスト、ロゴ、会社名を更新するノートを追加したいとします。

そのために、次のクラスを追加します:


 public class DemoRenderingExtension : Aspose.Slides.ReportingServices.Extension.RenderingExtensionBase

{

public override void PostProcessSlide(Aspose.Slides.ReportingServices.Extension.Slide slide)

{

//最初のスライドにノートを追加

if (this.CurrentSlideIndex == 0)

{

TextFormat textFormat = new TextFormat("Arial", 25);

textFormat.Bold = true;

slide.AddNote("これはAspose.Slides for ReportingServicesのレンダリング拡張のデモです",

textFormat);

}

//すべてのスライドの右下隅にロゴを表示

using (Stream imageStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestSlidesRenderingExtension.aspose.slides-for-ssrs-logo.jpg"))

{

slide.AddImage(imageStream, new RectangleF(slide.Size.Width - 20, slide.Size.Height - 20, 15, 15));

}

base.PostProcessSlide(slide);

}


public override void PostProcessTextBox(Aspose.Slides.ReportingServices.Extension.TextBox textBox)

{

//レポート内の会社名のいずれかの言及に(TM)を追加

string companyName = "Adventure Works";

if (textBox.Text.Contains(companyName))

{

textBox.Text = textBox.Text.Replace(companyName, companyName + "™");

}

base.PostProcessTextBox(textBox);

}

}

RenderingExtensionDemo.zipのVisual Studioプロジェクト

拡張機能の統合

あなたのアセンブリがTestSlidesRenderingExtension.dllと呼ばれていると仮定します:

  • アセンブリをAspose.Slides.ReportingServices.dllの隣のReportingService binディレクトリにコピーします。(例:c:\Program Files\Microsoft SQL Server\MSRS10_50\Reporting Services\ReportServer\bin)
  • 次のCodeGroupをrssrvpolicy.configに追加して、アセンブリにFullTrust権限を付与します:

 <CodeGroup class="FirstMatchCodeGroup" version="1" PermissionSetName="Nothing">

<IMembershipCondition class="AllMembershipCondition" version="1" /> 

... 

<CodeGroup class="FirstMatchCodeGroup" version="1" PermissionSetName="Execution" Description="このコードグループはMyComputerコードの実行権限を付与します。">

<IMembershipCondition class="ZoneMembershipCondition" version="1" Zone="MyComputer" /> 

... 

<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="Aspose.Slides_Extension" Description="このコードグループはAspose.Slides for Reporting Services Rendering拡張へのフルトラストを付与します。">

<IMembershipCondition class="UrlMembershipCondition" version="1" Url="c:\Program Files\Microsoft SQL Server\MSRS10_50\Reporting Services\ReportServer\bin\TestSlidesRenderingExtension.dll" /> 

</CodeGroup> 

</CodeGroup> 

</CodeGroup> 

rsreportserver.configのAspose.Slidesレンダリング拡張の設定セクションを更新して、拡張機能を含めます。


 <Extension Name="ASPPTX" Type="Aspose.Slides.ReportingServices.PptxRenderer,Aspose.Slides.ReportingServices">

<Configuration>

<Extension>TestSlidesRenderingExtension.DemoRenderingExtension, TestSlidesRenderingExtension</Extension>

</Configuration>

</Extension>

Aspose.Slidesがサポートするすべての出力タイプに対して拡張機能を使用したい場合は、ASPPTX、ASPPT、ASPPS、ASPPSXの名前を持つ拡張機能に同じ設定を追加します。 Extensionタグの内容は、その型のアセンブリ完全修飾名です。(詳細はhttps://docs.microsoft.com/en-us/dotnet/api/system.type.assemblyqualifiednameを参照してください)

Reporting Servicesを再起動し、レポートをエクスポートします。AdventureworksサンプルのCompany Sales SQL2008R2レポートからこのプレゼンテーションのようなものが得られます。