15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PRINTING_PRINT_SETTINGS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRINTING_PRINT_SETTINGS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/strings/string16.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/page_range.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/page_setup.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/print_job_constants.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/printing_export.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace printing { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Returns true if |color_mode| is color and not B&W. 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)PRINTING_EXPORT bool IsColorModelSelected(int color_mode); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(USE_CUPS) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Get the color model setting name and value for the |color_mode|. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PRINTING_EXPORT void GetColorModelForMode(int color_mode, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* color_setting_name, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* color_value); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// OS-independent print settings. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PRINTING_EXPORT PrintSettings { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Media properties requested by the user. Default instance represents 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // default media selection. 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct RequestedMedia { 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Size of the media, in microns. 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) gfx::Size size_microns; 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Platform specific id to map it back to the particular media. 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) std::string vendor_id; 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) bool IsDefault() const { 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return size_microns.IsEmpty() && vendor_id.empty(); 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) }; 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrintSettings(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~PrintSettings(); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Reinitialize the settings to the default values. 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void Clear(); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetCustomMargins(const PageMargins& requested_margins_in_points); 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const PageMargins& requested_custom_margins_in_points() const { 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return requested_custom_margins_in_points_; 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_margin_type(MarginType margin_type) { margin_type_ = margin_type; } 561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) MarginType margin_type() const { return margin_type_; } 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Updates the orientation and flip the page if needed. 591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void SetOrientation(bool landscape); 601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool landscape() const { return landscape_; } 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Updates user requested media. 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void set_requested_media(const RequestedMedia& media) { 64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) requested_media_ = media; 65f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Media properties requested by the user. Translated into device media by the 67f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // platform specific layers. 68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const RequestedMedia& requested_media() const { 69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return requested_media_; 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 71f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Set printer printable area in in device units. 731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Some platforms already provide flipped area. Set |landscape_needs_flip| 741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // to false on those platforms to avoid double flipping. 751e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void SetPrinterPrintableArea(const gfx::Size& physical_size_device_units, 761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const gfx::Rect& printable_area_device_units, 771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool landscape_needs_flip); 781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const PageSetup& page_setup_device_units() const { 791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) return page_setup_device_units_; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void set_device_name(const base::string16& device_name) { 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) device_name_ = device_name; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const base::string16& device_name() const { return device_name_; } 861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_dpi(int dpi) { dpi_ = dpi; } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int dpi() const { return dpi_; } 891e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_supports_alpha_blend(bool supports_alpha_blend) { 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) supports_alpha_blend_ = supports_alpha_blend; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool supports_alpha_blend() const { return supports_alpha_blend_; } 941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int device_units_per_inch() const { 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 72; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else // defined(OS_MACOSX) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return dpi(); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // defined(OS_MACOSX) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1031e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_ranges(const PageRanges& ranges) { ranges_ = ranges; }; 1041e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const PageRanges& ranges() const { return ranges_; }; 1051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_selection_only(bool selection_only) { 1071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) selection_only_ = selection_only; 1081e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) } 1091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool selection_only() const { return selection_only_; } 1101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_should_print_backgrounds(bool should_print_backgrounds) { 1121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) should_print_backgrounds_ = should_print_backgrounds; 1131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) } 1141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool should_print_backgrounds() const { return should_print_backgrounds_; } 1151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_display_header_footer(bool display_header_footer) { 1171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) display_header_footer_ = display_header_footer; 1181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) } 1191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool display_header_footer() const { return display_header_footer_; } 1201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_title(const base::string16& title) { title_ = title; } 1221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::string16& title() const { return title_; } 1231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_url(const base::string16& url) { url_ = url; } 1251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::string16& url() const { return url_; } 1261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_collate(bool collate) { collate_ = collate; } 1281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool collate() const { return collate_; } 1291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_color(ColorModel color) { color_ = color; } 1311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ColorModel color() const { return color_; } 1321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_copies(int copies) { copies_ = copies; } 1341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) int copies() const { return copies_; } 1351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void set_duplex_mode(DuplexMode duplex_mode) { duplex_mode_ = duplex_mode; } 1371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) DuplexMode duplex_mode() const { return duplex_mode_; } 1381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) int desired_dpi() const { return desired_dpi_; } 1401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) double max_shrink() const { return max_shrink_; } 1421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) double min_shrink() const { return min_shrink_; } 1441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Cookie generator. It is used to initialize PrintedDocument with its 1461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // associated PrintSettings, to be sure that each generated PrintedPage is 1471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // correctly associated with its corresponding PrintedDocument. 1481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) static int NewCookie(); 1491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) private: 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Multi-page printing. Each PageRange describes a from-to page combination. 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This permits printing selected pages only. 1531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PageRanges ranges_; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // By imaging to a width a little wider than the available pixels, thin pages 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // will be scaled down a little, matching the way they print in IE and Camino. 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This lets them use fewer sheets than they would otherwise, which is 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // presumably why other browsers do this. Wide pages will be scaled down more 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // than this. 1601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) double min_shrink_; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This number determines how small we are willing to reduce the page content 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // in order to accommodate the widest line. If the page would have to be 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // reduced smaller to make the widest line fit, we just clip instead (this 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // behavior matches MacIE and Mozilla, at least) 1661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) double max_shrink_; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Desired visible dots per inch rendering for output. Printing should be 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scaled to ScreenDpi/dpix*desired_dpi. 1701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) int desired_dpi_; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates if the user only wants to print the current selection. 1731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool selection_only_; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates what kind of margins should be applied to the printable area. 1761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) MarginType margin_type_; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Strings to be printed as headers and footers if requested by the user. 1791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) base::string16 title_; 1801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) base::string16 url_; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if the user wants headers and footers to be displayed. 1831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool display_header_footer_; 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // True if the user wants to print CSS backgrounds. 1861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool should_print_backgrounds_; 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // True if the user wants to print with collate. 1891e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool collate_; 1901e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1911e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // True if the user wants to print with collate. 1921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ColorModel color_; 1931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 1941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Number of copies user wants to print. 1951e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) int copies_; 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Duplex type user wants to use. 1981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) DuplexMode duplex_mode_; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Printer device name as opened by the OS. 2014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::string16 device_name_; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 203f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Media requested by the user. 204f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) RequestedMedia requested_media_; 205f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page setup in device units. 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageSetup page_setup_device_units_; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Printer's device effective dots per inch in both axis. 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int dpi_; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Is the orientation landscape or portrait. 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool landscape_; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if this printer supports AlphaBlend. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool supports_alpha_blend_; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If margin type is custom, this is what was requested. 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageMargins requested_custom_margins_in_points_; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace printing 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PRINTING_PRINT_SETTINGS_H_ 225