Some test text!

menu
search
Overlaykeyboard_arrow_down

File comparison

You can visually compare pages. This resolution independent comparison allows you to quickly spot differences between pages.

There are two main ways to integrate the out-of-box UI components in your application:

  1. standalone activity
  2. comparison options dialog.

linkStandalone activity

The DiffActivity is a standalone component that handles from picking two files to generating the comparison result.

diff-activity
  1. Define the activity
android.permission.WRITE_EXTERNAL_STORAGE permission is required.
<activity
    android:name="com.pdftron.pdf.controls.DiffActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
    android:theme="@style/CustomAppTheme"
    android:windowSoftInputMode="adjustPan" />
  1. Show the activity
DiffActivity.open(this);

linkComparison options dialog

If you have your own viewer already and only want to show the comparison options in your application, the DiffOptionsDialogFragment can be used.

diff-frag
public void show(final Context context, FragmentManager fragmentManager, final ArrayList<Uri> files) {
    DiffOptionsDialogFragment fragment = DiffOptionsDialogFragment.newInstance(
        files.get(0), files.get(1)
    );
    fragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomAppTheme);
    fragment.setDiffOptionsDialogListener(new DiffOptionsDialogFragment.DiffOptionsDialogListener() {
        @Override
        public void onDiffOptionsConfirmed(int color1, int color2, int blendMode) {
            compareFiles(context, files, color1, color2, blendMode);
        }
    });
    fragment.show(fragmentManager, DiffOptionsDialogFragment.TAG);
}

where compareFile is:

private final CompositeDisposable mDisposable = new CompositeDisposable();

private void compareFiles(Context context, ArrayList<Uri> files, int color1, int color2, int blendMode) {
    mDisposable.add(DiffUtils.compareFiles(context, files, color1, color2, blendMode)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<Uri>() {
            @Override
            public void accept(Uri uri) throws Exception {
                // do something with the output
            }
        }, new Consumer<Throwable>() {
            @Override
            public void accept(Throwable throwable) throws Exception {

            }
        }));
}
AsyncTask pattern can be used instead of Disposable pattern if desired.

Get the answers you need: Support

close

Free Trial

Get unlimited trial usage of PDFTron SDK to bring accurate, reliable, and fast document processing capabilities to any application or workflow.

Select a platform to get started with your free trial.

Unlimited usage. No email address required.

PDFTron Receives USD$71 Million Growth Investment Led By Silversmith Capital Partners

Learn more
close