| // Copyright 2020 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. |
| |
| module printing.mojom; |
| |
| // Print job color mode values. |
| enum ColorModel { |
| kUnknownColorModel, |
| kGray, |
| kColor, |
| kCMYK, |
| kCMY, |
| kKCMY, |
| kCMYPlusK, // kCMYPlusK represents CMY+K. |
| kBlack, |
| kGrayscale, |
| kRGB, |
| kRGB16, |
| kRGBA, |
| kColorModeColor, // Used in Samsung printer PPDs. |
| kColorModeMonochrome, // Used in Samsung printer PPDs. |
| kHPColorColor, // Used in HP color printer PPDs. |
| kHPColorBlack, // Used in HP color printer PPDs. |
| kPrintoutModeNormal, // Used in Foomatic PPDs. |
| kPrintoutModeNormalGray, // Used in Foomatic PPDs. |
| kProcessColorModelCMYK, // Used in Canon printer PPDs. |
| kProcessColorModelGreyscale, // Used in Canon printer PPDs. |
| kProcessColorModelRGB, // Used in Canon printer PPDs |
| kBrotherCUPSColor, // Used in Brother color laser printer PPDs. |
| kBrotherCUPSMono, // Used in Brother color laser printer PPDs. |
| kBrotherBRScript3Color, // Used in Brother BRScript3 color printer PPDs. |
| kBrotherBRScript3Black, // Used in Brother BRScript3 color printer PPDs. |
| kEpsonInkColor, // Used in Epson printer PPDs. |
| kEpsonInkMono, // Used in Epson printer PPDs. |
| kSharpARCModeCMColor, // Used in Sharp printer PPDs. |
| kSharpARCModeCMBW, // Used in Sharp printer PPDs. |
| kXeroxXRXColorAutomatic, // Used in Xerox printer PPDs. |
| kXeroxXRXColorBW, // Used in Xerox printer PPDs. |
| kColorModelLast = kXeroxXRXColorBW |
| }; |
| |
| // Print job duplex mode values. |
| enum DuplexMode { |
| kUnknownDuplexMode = -1, |
| kSimplex, |
| kLongEdge, |
| kShortEdge, |
| }; |
| |
| // Struct that holds margin and content area sizes of a page. Units are |
| // arbitrary and can be chosen by the programmer. |
| struct PageSizeMargins { |
| double content_width; |
| double content_height; |
| double margin_top; |
| double margin_right; |
| double margin_bottom; |
| double margin_left; |
| }; |
| |
| // CSS @page page-orientation descriptor values. |
| enum PageOrientation { kUpright, kRotateLeft, kRotateRight }; |
| |
| // Describes whether to reduce/enlarge/retain the print contents to fit the |
| // printable area. (This is used only by plugin printing). |
| enum PrintScalingOption { |
| // Prints the upper left of a page without scaling. Crop the page contents |
| // that don't fit on the paper. |
| kNone, |
| // Reduces or enlarges each page to fit the printable area of the selected |
| // printer paper size. |
| kFitToPrintableArea, |
| // Print output page size is same as the actual source page size. Do not |
| // scale/center/fit to printable area. |
| kSourceSize, |
| // Reduces or enlarges each page to fit the selected printer paper size. |
| kFitToPaper, |
| }; |
| |
| // Document type that Skia graphics library generates. |
| enum SkiaDocumentType { |
| // PDF document type. |
| kPDF, |
| // MultiPictureDocument type. kMSKP is an experimental, fragile, and |
| // diagnostic-only document type. |
| kMSKP, |
| }; |
| |
| // What kind of margins to use. |
| enum MarginType { |
| // Default varies depending on headers being enabled or not |
| kDefaultMargins, |
| kNoMargins, |
| kPrintableAreaMargins, |
| kCustomMargins, |
| }; |