1 package foo.bar.printservice; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.print.PageRange; 7 import android.print.PrintAttributes; 8 import android.print.PrintAttributes.MediaSize; 9 import android.print.PrintJobInfo; 10 import android.print.PrinterCapabilitiesInfo; 11 import android.print.PrinterInfo; 12 import android.printservice.PrintService; 13 14 public class CustomPrintOptionsActivity extends Activity { 15 16 @Override onCreate(Bundle savedInstanceState)17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 } 20 21 @Override onResume()22 public void onResume() { 23 super.onResume(); 24 25 PrintJobInfo printJobInfo = getIntent().getParcelableExtra( 26 PrintService.EXTRA_PRINT_JOB_INFO); 27 PrinterInfo printerInfo = getIntent().getParcelableExtra( 28 "android.intent.extra.print.EXTRA_PRINTER_INFO"); 29 30 PrinterCapabilitiesInfo capabilities = printerInfo.getCapabilities(); 31 32 PrintAttributes attributes = new PrintAttributes.Builder() 33 .setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME) 34 .setMediaSize(MediaSize.ISO_A5) 35 .setResolution(capabilities.getResolutions().get(0)) 36 .build(); 37 38 PrintJobInfo.Builder builder = new PrintJobInfo.Builder(printJobInfo); 39 builder.setAttributes(attributes); 40 builder.setCopies(2); 41 builder.setAttributes(attributes); 42 builder.setPages(new PageRange[] {new PageRange(1, 1), new PageRange(3, 3)}); 43 builder.putAdvancedOption("EXTRA_FIRST_ADVANCED_OPTION", "OPALA"); 44 builder.putAdvancedOption("EXTRA_SECOND_ADVANCED_OPTION", 1); 45 46 PrintJobInfo newPrintJobInfo = builder.build(); 47 48 Intent result = new Intent(); 49 result.putExtra(PrintService.EXTRA_PRINT_JOB_INFO, newPrintJobInfo); 50 setResult(Activity.RESULT_OK, result); 51 52 finish(); 53 } 54 } 55