// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PRINTING_NUP_PARAMETERS_H_ #define PRINTING_NUP_PARAMETERS_H_ #include "printing/printing_export.h" namespace printing { class PRINTING_EXPORT NupParameters { public: NupParameters(); // Whether or not the input |pages_per_sheet| is a supported N-up value. // Supported values are: 1 2 4 6 9 16 static bool IsSupported(int pages_per_sheet); // Orientation of the to-be-generated N-up PDF document. bool landscape() const { return landscape_; } int num_pages_on_x_axis() const { return num_pages_on_x_axis_; } int num_pages_on_y_axis() const { return num_pages_on_y_axis_; } // Calculates the |num_pages_on_x_axis_|, |num_pages_on_y_axis_| and // |landscape_| based on the input. |is_source_landscape| is true if the // source document orientation is landscape. // Callers should check |pages_per_sheet| values with IsSupported() first, // and only pass in supported values. void SetParameters(int pages_per_sheet, bool is_source_landscape); // Turns off N-up mode by resetting |num_pages_on_x_axis| = 1, // |num_pages_on_y_axis| = 1, and |landscape_| = false void Clear(); private: int num_pages_on_x_axis_; int num_pages_on_y_axis_; bool landscape_; }; } // namespace printing #endif // PRINTING_NUP_PARAMETERS_H_