Configuration des options d impression avec C++

Réglage des options d’impression

Ces options d’impression permettent aux utilisateurs de :

  • Sélectionner une zone d’impression spécifique sur une feuille de calcul.
  • Imprimer les titres.
  • Imprimer les quadrillages.
  • Imprimer les en-têtes de lignes/colonnes.
  • Obtenir une qualité brouillon.
  • Imprimer des commentaires.
  • Imprimer les erreurs de cellules.
  • Définir l’ordre des pages.

Aspose.Cells supporte toutes les options d’impression proposées par Microsoft Excel, et les développeurs peuvent configurer facilement ces options pour les feuilles en utilisant les propriétés offertes par la classe PageSetup. La façon dont ces propriétés sont utilisées est expliquée ci-dessous en détail.

Définir la zone d’impression

Par défaut, la zone d’impression intègre toutes les zones de la feuille de calcul contenant des données. Les développeurs peuvent établir une zone d’impression spécifique de la feuille de calcul.

Pour sélectionner une zone d’impression spécifique, utilisez la propriété GetPrintArea() de la classe PageSetup. Attribuez à cette propriété une plage de cellules définissant la zone d’impression.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Create a new workbook
    Workbook workbook;

    // Get the first worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Get the PageSetup object of the worksheet
    PageSetup pageSetup = worksheet.GetPageSetup();

    // Set the print area to the range A1:T35
    pageSetup.SetPrintArea(u"A1:T35");

    // Save the workbook
    workbook.Save(outDir + u"SetPrintArea_out.xls");

    std::cout << "Print area set successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Définir les titres d’impression

Aspose.Cells vous permet de désigner les en-têtes de lignes et de colonnes à répéter sur toutes les pages d’une feuille de calcul imprimée. Pour ce faire, utilisez les propriétés GetPrintTitleColumns() et GetPrintTitleRows() de la classe PageSetup.

Les lignes ou colonnes qui seront répétées sont définies en passant leurs numéros de ligne ou de colonne. Par exemple, les lignes sont définies comme $1:$2 et les colonnes sont définies comme $A:$B.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Path of output excel file
    U16String outputFilePath = outDir + u"SetPrintTitle_out.xls";

    // Create a new workbook
    Workbook workbook;

    // Obtain the reference of the PageSetup of the first worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);
    PageSetup pageSetup = worksheet.GetPageSetup();

    // Define column numbers A & B as title columns
    pageSetup.SetPrintTitleColumns(u"$A:$B");

    // Define row numbers 1 & 2 as title rows
    pageSetup.SetPrintTitleRows(u"$1:$2");

    // Save the workbook
    workbook.Save(outputFilePath);

    std::cout << "Print titles set successfully!" << std::endl;

    Aspose::Cells::Cleanup();
    return 0;
}

Définir d’autres options d’impression

La classe PageSetup fournit également plusieurs autres propriétés pour définir les options d’impression générales comme suit :

  • GetPrintGridlines() : propriété booléenne qui définit si les lignes de la grille doivent être imprimées ou non.
  • GetPrintHeadings() : une propriété booléenne qui définit l’impression ou non des en-têtes de lignes et de colonnes.
  • GetBlackAndWhite() : une propriété booléenne qui définit l’impression ou non de la feuille de calcul en mode noir et blanc.
  • GetPrintComments() : définit l’affichage des commentaires d’impression sur la feuille de calcul ou à la fin de la feuille de calcul.
  • GetPrintDraft() : propriété booléenne qui définit si la feuille doit être imprimée sans graphiques.
  • GetPrintErrors() : définit si les erreurs de cellules sont affichées telles qu’elles sont, en vide, en tiret ou N/A.

Pour définir les propriétés GetPrintComments() et GetPrintErrors(), Aspose.Cells fournit également deux énumérations, PrintCommentsType et PrintErrorsType qui contiennent des valeurs prédéfinies à attribuer respectivement aux propriétés GetPrintComments() et GetPrintErrors().

Les valeurs prédéfinies de l’énumération PrintCommentsType sont répertoriées ci-dessous avec leurs descriptions.

Types de commentaires d’impression Description
PrintInPlace Spécifie d’imprimer les commentaires tels qu’ils apparaissent sur la feuille de calcul.
PrintNoComments Spécifie de ne pas imprimer les commentaires.
PrintSheetEnd Spécifie d’imprimer les commentaires à la fin de la feuille de calcul.

Les valeurs prédéfinies de l’énumération PrintErrorsType sont répertoriées ci-dessous avec leurs descriptions.

Types d’erreurs d’impression Description
PrintErrorsBlank Indique de ne pas imprimer les erreurs.
PrintErrorsDash Indique d’imprimer les erreurs sous forme de “–”.
PrintErrorsDisplayed Indique d’imprimer les erreurs telles qu’elles sont affichées.
PrintErrorsNA Indique d’imprimer les erreurs sous forme de “#N/A”.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Create a new workbook
    Workbook workbook;

    // Get the first worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Get the PageSetup object of the worksheet
    PageSetup pageSetup = worksheet.GetPageSetup();

    // Set print options
    pageSetup.SetPrintGridlines(true);  // Allow printing gridlines
    pageSetup.SetPrintHeadings(true);   // Allow printing row/column headings
    pageSetup.SetBlackAndWhite(true);   // Allow printing in black & white mode
    pageSetup.SetPrintComments(PrintCommentsType::PrintInPlace);  // Print comments as displayed
    pageSetup.SetPrintDraft(true);      // Print with draft quality
    pageSetup.SetPrintErrors(PrintErrorsType::PrintErrorsNA);  // Print cell errors as N/A

    // Save the workbook
    U16String outputPath = outDir + u"OtherPrintOptions_out.xls";
    workbook.Save(outputPath);

    std::cout << "Workbook saved with print options successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Définir l’ordre des pages

La classe PageSetup fournit la propriété GetOrder() qui est utilisée pour ordonner l’impression de plusieurs pages de votre feuille de calcul. Il existe deux possibilités pour ordonner les pages comme suit.

  • En bas puis à droite : imprime toutes les pages en bas avant d’imprimer les pages à droite.
  • À droite puis en bas : imprime les pages de gauche à droite avant d’imprimer les pages en dessous.

Aspose.Cells fournit une énumération, PrintOrderType qui contient tous les types d’ordre prédéfinis.

Les valeurs prédéfinies de l’énumération PrintOrderType sont répertoriées ci-dessous.

Types d’ordre d’impression Description
DownThenOver Représente l’ordre d’impression en bas puis à droite.
OverThenDown Représente l’ordre d’impression à droite puis en bas.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Create a new workbook
    Workbook workbook;

    // Obtain the reference of the PageSetup of the first worksheet
    PageSetup pageSetup = workbook.GetWorksheets().Get(0).GetPageSetup();

    // Set the printing order of the pages to over then down
    pageSetup.SetOrder(PrintOrderType::OverThenDown);

    // Save the workbook
    workbook.Save(outDir + u"SetPageOrder_out.xls");

    std::cout << "Page order set successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}