Java Code Examples for android.print.PrintManager#print()

The following examples show how to use android.print.PrintManager#print() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ProWebView.java    From prowebview with Apache License 2.0 7 votes vote down vote up
/**
 * Print the current web site
 */
@RequiresApi(19)
public void printWebView(@Nullable PrintListener listener) {
    PrintManager printManager = (PrintManager) getContext().getSystemService(Context.PRINT_SERVICE);
    PrintDocumentAdapter printAdapter = createPrintDocumentAdapter();
    PrintAttributes.Builder builder = new PrintAttributes.Builder();
    builder.setMediaSize(PrintAttributes.MediaSize.NA_LETTER);
    if (printManager != null) {
        PrintJob printJob = printManager.print(getTitle(), printAdapter, builder.build());
        if (listener!=null) {
            if(printJob.isCompleted()){
                listener.onSuccess();
            } else {
                listener.onFailed();
            }
        }
    } else {
        if (listener != null) {
            listener.onFailed();
        }
    }
}
 
Example 2
Source File: ShareUtil.java    From Stringlate with MIT License 7 votes vote down vote up
/**
 * Print a {@link WebView}'s contents, also allows to create a PDF
 *
 * @param webview WebView
 * @param jobName Name of the job (affects PDF name too)
 * @return {{@link PrintJob}} or null
 */
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@SuppressWarnings("deprecation")
public PrintJob print(WebView webview, String jobName) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        PrintDocumentAdapter printAdapter;
        PrintManager printManager = (PrintManager) webview.getContext().getSystemService(Context.PRINT_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            printAdapter = webview.createPrintDocumentAdapter(jobName);
        } else {
            printAdapter = webview.createPrintDocumentAdapter();
        }
        if (printManager != null) {
            return printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());
        }
    } else {
        Log.e(getClass().getName(), "ERROR: Method called on too low Android API version");
    }
    return null;
}
 
Example 3
Source File: DetailFragment.java    From kolabnotes-android with GNU Lesser General Public License v3.0 7 votes vote down vote up
private void printNote() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        PrintManager printManager = (PrintManager) activity.getSystemService(Context.PRINT_SERVICE);
        String jobName = getString(R.string.app_name) + " Document";

        // GitHub issue 197
        if(editor != null){
            PrintDocumentAdapter printAdapter = editor.createPrintDocumentAdapter();
            printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());
        }else if(editText != null){
            printEditText(jobName);
        }else{
            Toast.makeText(activity, R.string.empty_note_description, Toast.LENGTH_LONG).show();
        }

    }
}
 
Example 4
Source File: PdfActivity.java    From AndroidAnimationExercise with Apache License 2.0 6 votes vote down vote up
private void genPdfFile() {
    PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        printAdapter = mWebView.createPrintDocumentAdapter("my.pdf");
    } else {
        printAdapter = mWebView.createPrintDocumentAdapter();
    }

    // Create a print job with name and adapter instance
    String jobName = getString(R.string.app_name) + " Document";

    PrintAttributes attributes = new PrintAttributes.Builder()
            .setMediaSize(PrintAttributes.MediaSize.ISO_A4)
            .setResolution(new PrintAttributes.Resolution("id", Context.PRINT_SERVICE, 200, 200))
            .setColorMode(PrintAttributes.COLOR_MODE_COLOR)
            .setMinMargins(PrintAttributes.Margins.NO_MARGINS)
            .build();

    printManager.print(jobName, printAdapter, attributes);


}
 
Example 5
Source File: PrintUtils.java    From OmniList with GNU Affero General Public License v3.0 5 votes vote down vote up
public static void print(Context ctx, WebView webView, String title) {
    if (PalmUtils.isKitKat()) {
        PrintManager printManager = (PrintManager) ctx.getSystemService(Context.PRINT_SERVICE);
        if (PalmUtils.isLollipop()) {
            printManager.print("Print_Assignment", webView.createPrintDocumentAdapter(title), null);
            return;
        }
        printManager.print("Print_Assignment", webView.createPrintDocumentAdapter(), null);
    }
}
 
Example 6
Source File: PreviewFragment.java    From Resume-Builder with MIT License 5 votes vote down vote up
private void createWebPrintJob(WebView webView) {

        // Get a PrintManager instance
        PrintManager printManager = (PrintManager) getActivity()
                .getSystemService(Context.PRINT_SERVICE);

        // Get a print adapter instance
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();

        // Create a print job with name and adapter instance
        String jobName = getString(R.string.app_name) + " Document";
        PrintJob printJob = printManager.print(jobName, printAdapter,
                new PrintAttributes.Builder().build());
    }
 
Example 7
Source File: MainActivity.java    From Android-SmartWebView with MIT License 5 votes vote down vote up
private void print_page(WebView view, String print_name, boolean manual) {
	PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
	PrintDocumentAdapter printAdapter = view.createPrintDocumentAdapter(print_name);
	PrintAttributes.Builder builder = new PrintAttributes.Builder();
	builder.setMediaSize(PrintAttributes.MediaSize.ISO_A5);
	PrintJob printJob = printManager.print(print_name, printAdapter, builder.build());

	if(printJob.isCompleted()){
		Toast.makeText(getApplicationContext(), R.string.print_complete, Toast.LENGTH_LONG).show();
	}
	else if(printJob.isFailed()){
		Toast.makeText(getApplicationContext(), R.string.print_failed, Toast.LENGTH_LONG).show();
	}
}
 
Example 8
Source File: ShareUtil.java    From memetastic with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Print a {@link WebView}'s contents, also allows to create a PDF
 *
 * @param webview WebView
 * @param jobName Name of the job (affects PDF name too)
 * @return {{@link PrintJob}} or null
 */
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public PrintJob print(final WebView webview, final String jobName, final boolean... landscape) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        final PrintDocumentAdapter printAdapter;
        final PrintManager printManager = (PrintManager) _context.getSystemService(Context.PRINT_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            printAdapter = webview.createPrintDocumentAdapter(jobName);
        } else {
            printAdapter = webview.createPrintDocumentAdapter();
        }
        final PrintAttributes.Builder attrib = new PrintAttributes.Builder();
        if (landscape != null && landscape.length > 0 && landscape[0]) {
            attrib.setMediaSize(new PrintAttributes.MediaSize("ISO_A4", "android", 11690, 8270));
            attrib.setMinMargins(new PrintAttributes.Margins(0, 0, 0, 0));
        }
        if (printManager != null) {
            try {
                return printManager.print(jobName, printAdapter, attrib.build());
            } catch (Exception ignored) {
            }
        }
    } else {
        Log.e(getClass().getName(), "ERROR: Method called on too low Android API version");
    }
    return null;
}
 
Example 9
Source File: DetailFragment.java    From kolabnotes-android with GNU Lesser General Public License v3.0 5 votes vote down vote up
private void createWebPrintJob(WebView webView, String jobName) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        // Get a PrintManager instance
        PrintManager printManager = (PrintManager) getActivity()
                .getSystemService(Context.PRINT_SERVICE);

        // Get a print adapter instance
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();

        // Create a print job with name and adapter instance
        PrintJob printJob = printManager.print(jobName, printAdapter,
                new PrintAttributes.Builder().build());
    }
}
 
Example 10
Source File: TemplatePrinterActivity.java    From commcare-android with Apache License 2.0 5 votes vote down vote up
/**
 * Starts a print job for the given WebView
 *
 * Source: https://developer.android.com/training/printing/html-docs.html
 *
 * @param v the WebView to be printed
 */
@TargetApi(Build.VERSION_CODES.KITKAT)
private void createWebPrintJob(WebView v) {
    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter = new PrintDocumentAdapterWrapper(this, v.createPrintDocumentAdapter());

    // Create a print job with name and adapter instance
    printJob = printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());
}
 
Example 11
Source File: MainActivity.java    From Notepad with Apache License 2.0 5 votes vote down vote up
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.KITKAT)
private void createWebPrintJob(WebView webView) {
    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) getSystemService(PRINT_SERVICE);

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();

    // Create a print job with name and adapter instance
    String jobName = getString(R.string.document, getString(R.string.app_name));
    printManager.print(jobName, printAdapter,
            new PrintAttributes.Builder().build());
}
 
Example 12
Source File: ShareUtil.java    From openlauncher with Apache License 2.0 4 votes vote down vote up
/**
 * Print a {@link WebView}'s contents, also allows to create a PDF
 *
 * @param webview WebView
 * @param jobName Name of the job (affects PDF name too)
 * @return {{@link PrintJob}} or null
 */
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public PrintJob print(final WebView webview, final String jobName, final boolean... landscape) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        final PrintDocumentAdapter printAdapter;
        final PrintManager printManager = (PrintManager) _context.getSystemService(Context.PRINT_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            printAdapter = webview.createPrintDocumentAdapter(jobName);
        } else {
            printAdapter = webview.createPrintDocumentAdapter();
        }
        final PrintAttributes.Builder attrib = new PrintAttributes.Builder();
        if (landscape != null && landscape.length > 0 && landscape[0]) {
            attrib.setMediaSize(new PrintAttributes.MediaSize("ISO_A4", "android", 11690, 8270));
            attrib.setMinMargins(new PrintAttributes.Margins(0, 0, 0, 0));
        }
        if (printManager != null) {
            try {
                return printManager.print(jobName, printAdapter, attrib.build());
            } catch (Exception ignored) {
            }
        }
    } else {
        Log.e(getClass().getName(), "ERROR: Method called on too low Android API version");
    }
    return null;
}
 
Example 13
Source File: MainActivity.java    From Simple-Accounting with GNU General Public License v3.0 4 votes vote down vote up
@Override
public boolean onOptionsItemSelected(MenuItem item) {
	// Handle action bar item clicks here. The action bar will
	// automatically handle clicks on the Home/Up button, so long
	// as you specify a parent activity in AndroidManifest.xml.
	int id = item.getItemId();

	switch (id) {
		case R.id.action_graph:
			Intent i = new Intent(getApplicationContext(), GraphActivity.class);
			i.putExtra(GraphActivity.GRAPH_SESSION, new Session(editableMonth, editableYear, editableCurrency));
			i.putExtra(GraphActivity.GRAPH_UPDATE_MONTH, updateMonth);
			i.putExtra(GraphActivity.GRAPH_UPDATE_YEAR, updateYear);
			startActivity(i);
			return true;
		case R.id.action_show_months:
			startActivity(new Intent(this, MonthActivity.class));
			return true;
		case R.id.action_print:
			if (table.getChildCount() > 1) {
				if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
					PrintManager printM = (PrintManager) getSystemService((Context.PRINT_SERVICE));

					String job = getString(R.string.app_name) + ": " +
							(!isSelectedMonthOlderThanUpdate()?
									getString(MONTH_STRINGS[editableMonth]):getString(MONTH_STRINGS[updateMonth]));
					printM.print(job,
							new PPrintDocumentAdapter(this, table, new Session(editableMonth, editableYear,
									currencyName), new int[]{updateMonth, updateYear}),
							null);
				}
			} else {
				Snackbar.make(table, getString(R.string.nothing_to_print), Snackbar.LENGTH_SHORT).show();
			}

			return true;
		case R.id.action_donate:
			startActivity(new Intent(getApplicationContext(), DonateActivity.class));
			return true;
		case R.id.action_settings:
			startActivity(new Intent(this, SettingsActivity.class));
			return true;
		case R.id.action_feedback:
			Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
					Uri.fromParts("mailto", getString(R.string.email), null));
			emailIntent.putExtra(Intent.EXTRA_SUBJECT,
					getString(R.string.feedback_about, getString(R.string.app_name)));
			emailIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.mail_content));
			emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{getString(R.string.email)});//makes it work in 4.3
			Intent chooser = Intent.createChooser(emailIntent, getString(R.string.choose_email));
			chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(chooser);//prevents exception
			startActivity(chooser);
			return true;
	}

	return super.onOptionsItemSelected(item);
}