• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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