Spread Windows Forms 13.0 Product Documentation
FarPoint.Win.Spread Assembly / FarPoint.Win.Spread Namespace / PrintInfo Class / SmartPrintRules Property
Example


In This Topic
    SmartPrintRules Property
    In This Topic
    Gets or sets the collection of rules to optimize the printing.
    Syntax
    'Declaration
     
    Public Property SmartPrintRules As SmartPrintRulesCollection
    'Usage
     
    Dim instance As PrintInfo
    Dim value As SmartPrintRulesCollection
     
    instance.SmartPrintRules = value
     
    value = instance.SmartPrintRules
    public SmartPrintRulesCollection SmartPrintRules {get; set;}

    Property Value

    SmartPrintRulesCollection object containing the collection of optimum printing rules
    Remarks

    The SmartPrintRulesCollection provides a set of rules that contains the following objects:

    Together, these rules dictate how Spread tries to fit the sheet onto printed pages. You can change the properties for these objects by setting the objects' properties.

    By default, these optimum printing rules provide the following behavior:

    • If the information can be printed without the sheet making any changes, the sheet prints in portrait mode.
    • If the sheet is wider than a portrait page, the sheet prints in landscape mode.
    • If the information does not fit in landscape mode, but will fit in landscape mode if the sheet is reduced up to 60% of its original size, the sheet is scaled to fit within the page.
    • If the information cannot be scaled to fit, the sheet tries to reduce column widths to accommodate the widest string within each column.
    • If all attempts to make the sheet print within a page fail, printing resumes normally in the current printer orientation with no reductions.

    For more information about optimum printing, refer to Optimizing Printing.

    Example
    This example shows how to define the settings for optimizing the printing.
    // Typically you would use one type of optimization; they are all shown here for illustration only
    
    // Define the printer settings for optimization
    FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
    FarPoint.Win.Spread.SmartPrintRulesCollection prules = new FarPoint.Win.Spread.SmartPrintRulesCollection(); 
    
    // ... use best fit of columns and rows
    printset.BestFitCols = true;
    printset.BestFitRows = true;
    
    // ... or check by page size
    printset.SmartPrintPagesTall = 1; 
    printset.SmartPrintPagesWide = 1; 
    
    // ... or use the rules defined
    prules.Add(new FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None)); 
    prules.Add(new FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.Current)); 
    prules.Add(new FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.None, 1, 0.6, 0.1)); 
    printset.SmartPrintRules = prules;
    printset.UseSmartPrint = true;
    
    // Assign the printer settings to the sheet and print it
    fpSpread1.Sheets[0].PrintInfo = printset;
    fpSpread1.PrintSheet(0);
    ' Typically you would use one type of optimization; they are all shown here for illustration only
    
    ' Define the printer settings for optimization
    Dim printset As New FarPoint.Win.Spread.PrintInfo()
    Dim prules As New FarPoint.Win.Spread.SmartPrintRulesCollection
    
    ' ... use best fit of columns and rows
    printset.BestFitCols = True
    printset.BestFitRows = True
    
    ' ... or check by page size
    printset.SmartPrintPagesTall = 1
    printset.SmartPrintPagesWide = 1
    
    ' ... or use the rules defined
    prules.Add(New FarPoint.Win.Spread.BestFitColumnRule(FarPoint.Win.Spread.ResetOption.None)) 
    prules.Add(New FarPoint.Win.Spread.LandscapeRule(FarPoint.Win.Spread.ResetOption.Current))
    prules.Add(New FarPoint.Win.Spread.ScaleRule(FarPoint.Win.Spread.ResetOption.None, 1, 0.6, 0.1))
    printset.SmartPrintRules = prules
    printset.UseSmartPrint = True
    
    ' Assign the printer settings to the sheet and print it
    FpSpread1.Sheets(0).PrintInfo = printset
    FpSpread1.PrintSheet(0)
    See Also