Настройка параметров печати с помощью C++

Установка параметров печати

Эти параметры печати позволяют пользователям:

  • Выбрать конкретную область печати на рабочем листе.
  • Напечатать заголовки.
  • Напечатать сетку.
  • Печать верхних заголовков строк / столбцов.
  • Достичь чернового качества.
  • Напечатать примечания.
  • Напечатать ошибки ячеек.
  • Определить порядок страниц.

Aspose.Cells поддерживает все параметры печати, предлагаемые Microsoft Excel, и разработчики могут легко настроить эти параметры для листов с помощью свойств класса PageSetup. Подробное описание использования этих свойств приведено ниже.

Установка области печати

По умолчанию область печати включает все области листа, содержащие данные. Разработчики могут установить конкретную область печати листа.

Чтобы выбрать конкретную область печати, используйте свойство GetPrintArea() класса PageSetup. Назначьте этому свойству диапазон ячеек, определяющий область печати.

#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();
}

Установка заголовков для печати

Aspose.Cells позволяет определить повторение заголовков строк и столбцов на всех страницах напечатанного листа. Для этого используйте свойства GetPrintTitleColumns() и GetPrintTitleRows() класса PageSetup.

Строки или столбцы, которые будут повторяться, определяются путем передачи их номеров строки или столбца. Например, строки определяются как $1:$2, а столбцы определяются как $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;
}

Настройка Других Опций Печати

Класс PageSetup также предоставляет несколько других свойств для установки общих параметров печати:

  • GetPrintGridlines(): логическое свойство, определяющее, нужно ли печатать сетку.
  • GetPrintHeadings(): булевое свойство, определяющее, печатать заголовки строк и столбцов или нет.
  • GetBlackAndWhite(): булево свойство, определяющее, печатать лист в черно-белом режиме или нет.
  • GetPrintComments(): определяет, отображать ли примечания к печати на листе или в конце листа.
  • GetPrintDraft(): логическое свойство, определяющее, нужно ли печатать лист без графики.
  • GetPrintErrors(): определяет, нужно ли печатать ошибки ячеек как отображается, пустыми, тире или N/A.

Для установки свойств GetPrintComments() и GetPrintErrors() Aspose.Cells также предоставляет две перечислительные структуры, PrintCommentsType и PrintErrorsType, содержащие предопределенные значения, которые присваиваются свойствам GetPrintComments() и GetPrintErrors() соответственно.

Заранее определенные значения в перечислении PrintCommentsType перечислены ниже вместе с их описаниями.

Типы Примечаний к Печати Описание
PrintInPlace Указывает на печать комментариев как отображаемых в таблице.
PrintNoComments Указывает, что комментарии не нужно печатать.
PrintSheetEnd Указывает на печать комментариев в конце таблицы.

Заранее определенные значения перечисления PrintErrorsType перечислены ниже вместе с их описаниями.

Типы Ошибок Печати Описание
PrintErrorsBlank Указывает, что ошибки не нужно печатать.
PrintErrorsDash Указывает на печать ошибок как “–”.
PrintErrorsDisplayed Указывает на печать ошибок как отображаемых.
PrintErrorsNA Указывает на печать ошибок как “#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();
}

Установить порядок страниц

Класс PageSetup предоставляет свойство GetOrder(), которое используется для упорядочивания печати нескольких страниц вашей таблицы. Есть две возможности упорядочить страницы следующим образом:

  • Сначала вниз, затем вправо: печатает все страницы вниз до печати любых страниц вправо.
  • Сначала вправо, затем вниз: печатает страницы слева направо до печати страниц ниже.

Aspose.Cells предоставляет перечисление PrintOrderType, содержащее все заранее определенные типы порядка.

Заранее определенные значения перечисления PrintOrderType перечислены ниже.

Типы порядка печати Описание
DownThenOver Представляет порядок печати как сначала вниз, затем вправо.
OverThenDown Представляет порядок печати как сначала вправо, затем вниз.
#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();
}