Home | History | Annotate | Download | only in dev
      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