Java程序  |  56行  |  1.94 KB

package foo.bar.printservice;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.print.PageRange;
import android.print.PrintAttributes;
import android.print.PrintAttributes.MediaSize;
import android.print.PrintJobInfo;
import android.print.PrinterCapabilitiesInfo;
import android.print.PrinterInfo;
import android.printservice.PrintService;

public class CustomPrintOptionsActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onResume() {
        super.onResume();

        PrintJobInfo printJobInfo = (PrintJobInfo) getIntent().getParcelableExtra(
                PrintService.EXTRA_PRINT_JOB_INFO);
        PrinterInfo printerInfo = (PrinterInfo) getIntent().getParcelableExtra(
                "android.intent.extra.print.EXTRA_PRINTER_INFO");

        PrinterCapabilitiesInfo capabilities = printerInfo.getCapabilities();

        PrintAttributes attributes = new PrintAttributes.Builder()
                .setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME)
                .setMediaSize(MediaSize.ISO_A5)
                .setResolution(capabilities.getResolutions().get(0))
                .build();

        PrintJobInfo.Builder builder = new PrintJobInfo.Builder(printJobInfo);
        builder.setAttributes(attributes);
        builder.setCopies(2);
        builder.setAttributes(attributes);
        builder.setPages(new PageRange[] {new PageRange(1, 1), new PageRange(3, 3)});
        builder.putAdvancedOption("EXTRA_FIRST_ADVANCED_OPTION", "OPALA");
        builder.putAdvancedOption("EXTRA_SECOND_ADVANCED_OPTION", 1);

        PrintJobInfo newPrintJobInfo = builder.build();

        Intent result = new Intent();
        result.putExtra(PrintService.EXTRA_PRINT_JOB_INFO, newPrintJobInfo);
        setResult(Activity.RESULT_OK, result);

        finish();
    }
}