PowerTools SPREAD for ASP.NET 8.0J > 開発者の手引き > ファイル入出力 > 保存 > 印刷設定 > 印刷の最適化 |
SPREADには、スマート印刷により、シートの最適な印刷方法を自動的に判断できます。規則オブジェクトを設定することで、たとえばページの印刷方向は横向きまたは縦向きのどちらが適切かを判断できます。
規則は印刷の最適化を定義するもので、有効または無効にできます。規則をカスタマイズするには、以下の規則オブジェクトの各プロパティを設定します。
規則オブジェクト | 説明 |
---|---|
LandscapeRule | シートを横向きまたは縦向きのどちらで印刷するかを定義します。 |
ScaleRule | シートを印刷するための最適な縮尺率を定義します。100%(Start Factor = 1)から開始され、指定の段階値によって、最小サイズ(End Factor)まで縮小されます。 デフォルトの設定値はそれぞれStart Factor = 1、End Factor = 0.6、およびInterval = 0.1となります。 |
BestFitColumnRule | 印刷ページ上での、シートの列幅の最適な調整方法を定義します。 |
デフォルトでは、シートの印刷は以下の論理に従って最適化されます。
規則オブジェクトを使用すると、この論理がどのように適用されるかをカスタマイズできます。 規則オブジェクトをカスタマイズすると、デフォルトの規則は無視され、カスタマイズした規則だけが印刷時に適用されます。
SmartPrintRulesCollection クラスを生成し、規則のコレクションを生成します。各規則は、LandscapeRule クラス、ScaleRule クラスおよびBestFitColumnRule クラス を使用して生成し、このコレクションに追加します。
次にPrintInfo クラスを生成します。UseSmartPrint プロパティをtrueに設定し、SmartPrintRules プロパティ に生成した規則コレクションを設定します。
次のサンプルコードは、PrintInfoオブジェクトでカスタマイズした独自の印刷規則を使用して、印刷を実行します。この例では、列幅を最長テキスト文字列に合わせて縮小することでシートがページ内に収まる場合は、列幅を縮小して印刷を行います。列幅の縮小によってもシートがページ内に収まらない場合は、縮小したままの状態で、シートの横向き印刷を試みます。列幅を縮小し、横向きにしてもページ内に収まらない場合は、これらの設定値を維持したまま、シート全体を縮小します。縮小率は100%から開始し、20%ずつ、最大40%まで縮小します。
// 印刷規則を作成します。 FarPoint.Web.Spread.SmartPrintRulesCollection printrules = new FarPoint.Web.Spread.SmartPrintRulesCollection(); printrules.Add(new FarPoint.Web.Spread.BestFitColumnRule(FarPoint.Web.Spread.ResetOption.None)); printrules.Add(new FarPoint.Web.Spread.LandscapeRule(FarPoint.Web.Spread.ResetOption.None)); printrules.Add(new FarPoint.Web.Spread.ScaleRule(FarPoint.Web.Spread.ResetOption.All, 1.0f, .4f, .2f)); // PrintInfoオブジェクトを作成し、各プロパティを設定します。 FarPoint.Web.Spread.PrintInfo printset = new FarPoint.Web.Spread.PrintInfo(); printset.SmartPrintRules = printrules; printset.UseSmartPrint = true; fpSpread1.Sheets[0].PrintInfo = printset; // PDFファイルに保存します。 fpSpread1.SavePdf("c:\\test.pdf");
' 印刷規則を作成します。 Dim printrules As New FarPoint.Web.Spread.SmartPrintRulesCollection() printrules.Add(New FarPoint.Web.Spread.BestFitColumnRule(FarPoint.Web.Spread.ResetOption.None)) printrules.Add(New FarPoint.Web.Spread.LandscapeRule(FarPoint.Web.Spread.ResetOption.None)) printrules.Add(New FarPoint.Web.Spread.ScaleRule(FarPoint.Web.Spread.ResetOption.All, 1.0F, 0.4F, 0.2F)) ' PrintInfoオブジェクトを作成し、各プロパティを設定します。 Dim printset As New FarPoint.Web.Spread.PrintInfo() printset.SmartPrintRules = printrules printset.UseSmartPrint = True FpSpread1.Sheets(0).PrintInfo = printset ' PDFファイルに保存します。 FpSpread1.SavePdf("C:\test.pdf")