SPREADには、スマート印刷により、シートの最適な印刷方法を自動的に判断できます。規則オブジェクトを設定することで、たとえばページの印刷方向は横向きまたは縦向きのどちらが適切かを判断できます。
規則は印刷の最適化を定義するもので、有効または無効にできます。規則をカスタマイズするには、以下の規則オブジェクトの各プロパティを設定します。
規則オブジェクト |
説明 |
LandscapeRule |
シートを横向きまたは縦向きのどちらで印刷するかを定義します。 |
ScaleRule |
シートを印刷するための最適な縮尺率を定義します。100%(Start Factor = 1)から開始され、指定の段階値によって、最小サイズ(End Factor)まで縮小されます。 デフォルトの設定値はそれぞれStart Factor = 1、End Factor = 0.6、およびInterval = 0.1となります。 |
BestFitColumnRule |
印刷ページ上での、シートの列幅の最適な調整方法を定義します。 |
デフォルトでは、シートの印刷は以下の論理に従って最適化されます。
- サイズ変更の必要がなく、PrintInfo クラスに定義した設定のままで印刷できる場合は、シートは縦向きに印刷されます。
- シートが縦向きのページ幅より大きくなる場合は、横向きに印刷されます。
- データが横向きのページ幅にも収まらない場合、シートを元のサイズの60%まで縮小することで横向きのページ幅に収まるのであれば、シートはページ内で縮小されます。
- データを縮小してもページ幅に収まらない場合は、各列内で最も幅の広い文字列に合わせて列幅が縮小されます。
- 以上のすべての処理を行っても、ページ内にシートが収まらない場合は、現在のプリンタの印刷方向に従い、縮小を行わない通常の印刷が再開されます。
規則オブジェクトを使用すると、この論理がどのように適用されるかをカスタマイズできます。 規則オブジェクトをカスタマイズすると、デフォルトの規則は無視され、カスタマイズした規則だけが印刷時に適用されます。
設定方法
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")
関連トピック