1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. 4 */ 5 6 /** 7 * Definition of the PPP_Printing interface. 8 */ 9 10 // Note: This version should always match the PPB_Printing_Dev interface. 11 label Chrome { 12 M21 = 0.6 13 }; 14 15 /** 16 * Specifies a contiguous range of page numbers to be printed. 17 * The page numbers use a zero-based index. 18 */ 19 [assert_size(8)] 20 struct PP_PrintPageNumberRange_Dev { 21 uint32_t first_page_number; 22 uint32_t last_page_number; 23 }; 24 25 interface PPP_Printing_Dev { 26 /** 27 * Returns a bit field representing the supported print output formats. For 28 * example, if only PDF and PostScript are supported, 29 * QuerySupportedFormats returns a value equivalent to: 30 * (PP_PRINTOUTPUTFORMAT_PDF | PP_PRINTOUTPUTFORMAT_POSTSCRIPT) 31 */ 32 uint32_t QuerySupportedFormats([in] PP_Instance instance); 33 34 /** 35 * Begins a print session with the given print settings. Calls to PrintPages 36 * can only be made after a successful call to Begin. Returns the number of 37 * pages required for the print output at the given page size (0 indicates 38 * a failure). 39 */ 40 int32_t Begin([in] PP_Instance instance, 41 [in] PP_PrintSettings_Dev print_settings); 42 43 /** 44 * Prints the specified pages using the format specified in Begin. 45 * Returns a PPB_Buffer resource that represents the printed output. Returns 46 * 0 on failure. 47 */ 48 PP_Resource PrintPages([in] PP_Instance instance, 49 [in] PP_PrintPageNumberRange_Dev page_ranges, 50 [in] uint32_t page_range_count); 51 52 /** Ends the print session. Further calls to PrintPages will fail. */ 53 void End([in] PP_Instance instance); 54 55 /** 56 * Returns true if the current content should be printed into the full page 57 * and not scaled down to fit within the printer's printable area. 58 */ 59 PP_Bool IsScalingDisabled([in] PP_Instance instance); 60 }; 61