├── MuPDFDemo ├── .gitignore ├── .idea │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ └── runConfigurations.xml ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── successive │ │ │ └── mupdfdemo │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── successive │ │ │ │ └── mupdfdemo │ │ │ │ └── MainActivity.java │ │ └── res │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── successive │ │ └── mupdfdemo │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── mupdf-android-master │ ├── .gitignore │ ├── COPYING │ ├── LICENSE │ ├── README.md │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── artifex │ │ │ └── viafirma │ │ │ └── mupdf │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── artifex │ │ │ ├── mupdfdemo │ │ │ ├── Annotation.java │ │ │ ├── ArrayDeque.java │ │ │ ├── AsyncTask.java │ │ │ ├── CancellableAsyncTask.java │ │ │ ├── CancellableTaskDefinition.java │ │ │ ├── ChoosePDFActivity.java │ │ │ ├── ChoosePDFAdapter.java │ │ │ ├── ChoosePDFItem.java │ │ │ ├── Deque.java │ │ │ ├── FilePicker.java │ │ │ ├── LinkInfo.java │ │ │ ├── LinkInfoExternal.java │ │ │ ├── LinkInfoInternal.java │ │ │ ├── LinkInfoRemote.java │ │ │ ├── LinkInfoVisitor.java │ │ │ ├── MuPDFActivity.java │ │ │ ├── MuPDFAlert.java │ │ │ ├── MuPDFAlertInternal.java │ │ │ ├── MuPDFCancellableTaskDefinition.java │ │ │ ├── MuPDFCore.java │ │ │ ├── MuPDFFragment.java │ │ │ ├── MuPDFPageAdapter.java │ │ │ ├── MuPDFPageView.java │ │ │ ├── MuPDFReaderView.java │ │ │ ├── MuPDFReflowAdapter.java │ │ │ ├── MuPDFReflowView.java │ │ │ ├── MuPDFView.java │ │ │ ├── OutlineActivity.java │ │ │ ├── OutlineActivityData.java │ │ │ ├── OutlineAdapter.java │ │ │ ├── OutlineItem.java │ │ │ ├── PageView.java │ │ │ ├── PrintDialogActivity.java │ │ │ ├── ReaderView.java │ │ │ ├── SafeAnimatorInflater.java │ │ │ ├── SearchTask.java │ │ │ ├── SearchTaskResult.java │ │ │ ├── Stepper.java │ │ │ ├── TextChar.java │ │ │ ├── TextWord.java │ │ │ └── WidgetType.java │ │ │ └── utils │ │ │ ├── DigitalizedEventCallback.java │ │ │ └── PdfBitmap.java │ │ ├── jniLibs │ │ ├── armeabi-v7a │ │ │ └── libmupdf.so │ │ └── armeabi │ │ │ └── libmupdf.so │ │ └── res │ │ ├── animator │ │ └── info.xml │ │ ├── drawable-hdpi │ │ └── icon.png │ │ ├── drawable-ldpi │ │ ├── ic_annot.png │ │ ├── ic_annotation.png │ │ ├── ic_arrow_left.png │ │ ├── ic_arrow_right.png │ │ ├── ic_cancel.png │ │ ├── ic_check.png │ │ ├── ic_clipboard.png │ │ ├── ic_dir.png │ │ ├── ic_doc.png │ │ ├── ic_highlight.png │ │ ├── ic_link.png │ │ ├── ic_list.png │ │ ├── ic_magnifying_glass.png │ │ ├── ic_more.png │ │ ├── ic_pen.png │ │ ├── ic_print.png │ │ ├── ic_reflow.png │ │ ├── ic_select.png │ │ ├── ic_share.png │ │ ├── ic_strike.png │ │ ├── ic_trash.png │ │ ├── ic_underline.png │ │ ├── ic_updir.png │ │ └── icon.png │ │ ├── drawable-mdpi │ │ ├── ic_annot.png │ │ ├── ic_annotation.png │ │ ├── ic_arrow_left.png │ │ ├── ic_arrow_right.png │ │ ├── ic_arrow_up.png │ │ ├── ic_cancel.png │ │ ├── ic_check.png │ │ ├── ic_clipboard.png │ │ ├── ic_dir.png │ │ ├── ic_doc.png │ │ ├── ic_highlight.png │ │ ├── ic_link.png │ │ ├── ic_list.png │ │ ├── ic_magnifying_glass.png │ │ ├── ic_more.png │ │ ├── ic_pen.png │ │ ├── ic_print.png │ │ ├── ic_reflow.png │ │ ├── ic_select.png │ │ ├── ic_share.png │ │ ├── ic_strike.png │ │ ├── ic_trash.png │ │ ├── ic_underline.png │ │ └── icon.png │ │ ├── drawable-xhdpi │ │ └── icon.png │ │ ├── drawable │ │ ├── busy.xml │ │ ├── button.xml │ │ ├── darkdenim3.png │ │ ├── page_num.xml │ │ ├── search.xml │ │ ├── seek_progress.xml │ │ ├── seek_thumb.xml │ │ └── tiled_background.xml │ │ ├── layout │ │ ├── buttons.xml │ │ ├── main.xml │ │ ├── outline_entry.xml │ │ ├── picker_entry.xml │ │ ├── print_dialog.xml │ │ └── textentry.xml │ │ ├── values-ar │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es │ │ └── strings.xml │ │ ├── values-et │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-iw │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-lt │ │ └── strings.xml │ │ ├── values-ms │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-no │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sv │ │ └── strings.xml │ │ ├── values-th │ │ └── strings.xml │ │ ├── values-tl │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ ├── values-zh │ │ └── strings.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml └── settings.gradle └── README.md /MuPDFDemo/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /MuPDFDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /MuPDFDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /MuPDFDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 26 5 | buildToolsVersion "26.0.1" 6 | defaultConfig { 7 | applicationId "com.successive.mupdfdemo" 8 | minSdkVersion 15 9 | targetSdkVersion 26 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 25 | exclude group: 'com.android.support', module: 'support-annotations' 26 | }) 27 | compile 'com.android.support:appcompat-v7:26.+' 28 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 29 | testCompile 'junit:junit:4.12' 30 | compile project(':mupdf-android-master') 31 | } 32 | -------------------------------------------------------------------------------- /MuPDFDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /home/jubin/Android/Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/androidTest/java/com/successive/mupdfdemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.successive.mupdfdemo; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.successive.mupdfdemo", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/java/com/successive/mupdfdemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.successive.mupdfdemo; 2 | 3 | import android.Manifest; 4 | import android.content.Intent; 5 | import android.content.pm.PackageManager; 6 | import android.database.Cursor; 7 | import android.graphics.Color; 8 | import android.net.Uri; 9 | import android.os.Bundle; 10 | import android.support.v4.app.ActivityCompat; 11 | import android.support.v4.content.ContextCompat; 12 | import android.support.v7.app.AppCompatActivity; 13 | import android.support.v7.widget.AppCompatButton; 14 | import android.support.v7.widget.Toolbar; 15 | import android.util.Log; 16 | import android.view.View; 17 | import android.widget.RelativeLayout; 18 | import android.widget.TextView; 19 | 20 | import com.artifex.mupdfdemo.MuPDFCore; 21 | import com.artifex.mupdfdemo.MuPDFPageAdapter; 22 | import com.artifex.mupdfdemo.MuPDFReaderView; 23 | 24 | import java.io.InputStream; 25 | 26 | public class MainActivity extends AppCompatActivity { 27 | private static final int REQUEST_EXTERNAL_STORAGE = 0; 28 | private AppCompatButton openFileManagerBtn; 29 | private Toolbar toolbar; 30 | private RelativeLayout pdfViewRL; 31 | private TextView title, msgTxt; 32 | 33 | @Override 34 | protected void onCreate(Bundle savedInstanceState) { 35 | super.onCreate(savedInstanceState); 36 | setContentView(R.layout.activity_main); 37 | //Marshmallow Runtime Permissions 38 | loadPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_EXTERNAL_STORAGE); 39 | openFileManagerBtn = (AppCompatButton) findViewById(R.id.open_btn); 40 | toolbar = (Toolbar) findViewById(R.id.toolbar); 41 | title = (TextView) findViewById(R.id.title); 42 | msgTxt = (TextView) findViewById(R.id.msgTxt); 43 | title.setVisibility(View.GONE); 44 | pdfViewRL = (RelativeLayout) findViewById(R.id.pdfViewRL); 45 | setSupportActionBar(toolbar); 46 | toolbar.setTitleTextColor(Color.WHITE); 47 | openFileManagerBtn.setOnClickListener(new View.OnClickListener() { 48 | @Override 49 | public void onClick(View view) { 50 | pickFileOnClick(view); 51 | } 52 | }); 53 | } 54 | 55 | private void displayPDF(String path) throws Exception { 56 | 57 | /*Reading file from URI*/ 58 | byte buffer[] = null; 59 | Uri uri = Uri.parse(path); 60 | try { 61 | InputStream is = getContentResolver().openInputStream(uri); 62 | int len = is.available(); 63 | buffer = new byte[len]; 64 | is.read(buffer, 0, len); 65 | is.close(); 66 | } catch (OutOfMemoryError e) { 67 | System.out.println("Out of memory during buffer reading"); 68 | } catch (Exception e) { 69 | System.out.println("Exception reading from stream: " + e); 70 | try { 71 | Cursor cursor = getContentResolver().query(uri, new String[]{"_data"}, null, null, null); 72 | if (cursor.moveToFirst()) { 73 | String str = cursor.getString(0); 74 | if (str == null) { 75 | } else { 76 | uri = Uri.parse(str); 77 | } 78 | } 79 | } catch (Exception e2) { 80 | System.out.println("Exception in Transformer Prime file manager code: " + e2); 81 | } 82 | } 83 | 84 | MuPDFCore core = new MuPDFCore(getApplicationContext(), buffer, null); 85 | MuPDFReaderView mDocView = new MuPDFReaderView(getApplicationContext()); 86 | mDocView.setAdapter(new MuPDFPageAdapter(getApplicationContext(), null, core)); 87 | pdfViewRL.addView(mDocView, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); 88 | 89 | 90 | /*Use this if you want to open PDF outside app using MuPDF's own Activity*/ 91 | 92 | /*Intent intent = new Intent(getApplicationContext(), MuPDFActivity.class); 93 | intent.setAction(Intent.ACTION_VIEW); 94 | intent.setData(Uri.parse(path)); 95 | startActivity(intent);*/ 96 | 97 | 98 | } 99 | 100 | @Override 101 | public void onActivityResult(int reqCode, int result, Intent intent) { 102 | if (reqCode == 1) { 103 | if (result == RESULT_OK) { 104 | Uri data = intent.getData(); 105 | Log.i("Main", "File path: " + data.getPath()); 106 | Log.i("Main", "File name: " + data.getLastPathSegment()); 107 | if (data.getLastPathSegment() != null) { 108 | title.setVisibility(View.VISIBLE); 109 | title.setText(data.getLastPathSegment()); 110 | msgTxt.setVisibility(View.GONE); 111 | } 112 | try { 113 | 114 | 115 | displayPDF(data.toString()); 116 | } catch (Exception e) { 117 | e.printStackTrace(); 118 | } 119 | } 120 | } 121 | } 122 | 123 | public void pickFileOnClick(View v) { 124 | //Method to open pdf files 125 | Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 126 | intent.setType("application/pdf"); 127 | startActivityForResult(intent, 1); 128 | } 129 | 130 | private void loadPermissions(String perm, int requestCode) { 131 | if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) { 132 | if (!ActivityCompat.shouldShowRequestPermissionRationale(this, perm)) { 133 | ActivityCompat.requestPermissions(this, new String[]{perm}, requestCode); 134 | } 135 | } 136 | } 137 | 138 | // Code Added 139 | @Override 140 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 141 | switch (requestCode) { 142 | case REQUEST_EXTERNAL_STORAGE: { 143 | // If request is cancelled, the result arrays are empty. 144 | if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 145 | Log.v("STATUS", "Permission Granted!"); 146 | 147 | } else { 148 | // not granted 149 | 150 | } 151 | return; 152 | } 153 | 154 | } 155 | } 156 | } -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 24 | 25 | 30 | 31 | 41 | 42 | 49 | 50 | 51 | 52 | 53 | 62 | 63 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MuPDF Demo 3 | 4 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /MuPDFDemo/app/src/test/java/com/successive/mupdfdemo/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.successive.mupdfdemo; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /MuPDFDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.3.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | 21 | task clean(type: Delete) { 22 | delete rootProject.buildDir 23 | } 24 | -------------------------------------------------------------------------------- /MuPDFDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /MuPDFDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /MuPDFDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Sep 01 09:22:29 IST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 7 | -------------------------------------------------------------------------------- /MuPDFDemo/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /MuPDFDemo/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /*.iml 8 | *.iml 9 | /gradle.properties -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/README.md: -------------------------------------------------------------------------------- 1 | # MuPDF for Android 2 | 3 | ## Introduction 4 | This project is intended to offer an easy integration of MuPDF library (http://www.mupdf.com) on Android, avoiding the building process and adapted to the last version of Android Studio and Gradle as of February 2015 (commit 262a4717a9997c89cac275d24ce6d605ca06284f from http://git.ghostscript.com/mupdf.git) 5 | 6 | We also added some features: 7 | 8 | * You can add custom Bitmaps to each page. 9 | * You can use the MuPDFActivity as a Fragment (MuPDFFragment), that allows you to include it in your own activity as any other layout. 10 | * You can add an interface listener to the page of the pdf, so you can listen when the user taps, double taps or long press any coordinate of the pdf. 11 | 12 | This version is still on development. 13 | 14 | ## Installation guide 15 | 16 | 1. Make sure you have installed the newest NDK from https://developer.android.com/tools/sdk/ndk/index.html#Installing (version 9+ required) 17 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/build.gradle: -------------------------------------------------------------------------------- 1 | repositories { 2 | mavenCentral() 3 | jcenter() 4 | maven { url 'http://repo1.maven.org/maven2' } 5 | } 6 | 7 | buildscript { 8 | repositories { 9 | mavenCentral() 10 | jcenter() 11 | } 12 | dependencies { 13 | classpath 'com.android.tools.build:gradle:2.3.1' 14 | } 15 | } 16 | 17 | apply plugin: 'com.android.library' 18 | apply plugin: 'maven' 19 | 20 | def muPdfversionCode = 19 21 | def muPdfversionName = '1.2.19' 22 | 23 | android { 24 | compileSdkVersion 21 25 | buildToolsVersion '25.0.0' 26 | 27 | lintOptions { 28 | abortOnError false 29 | } 30 | defaultConfig { 31 | minSdkVersion 15 32 | targetSdkVersion 21 33 | versionCode muPdfversionCode 34 | versionName muPdfversionName 35 | } 36 | buildTypes { 37 | release { 38 | minifyEnabled false 39 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 40 | } 41 | } 42 | } 43 | 44 | configurations { 45 | deployerJars 46 | } 47 | 48 | dependencies { 49 | deployerJars 'org.apache.maven.wagon:wagon-http:2.2' 50 | compile fileTree(dir: 'libs', include: ['*.jar']) 51 | compile 'com.android.support:appcompat-v7:21.0.3' 52 | } 53 | 54 | // For Maven Repository submitting : Execute task: UploadArchives. Ex: > gradle uploadArchives 55 | // Define repoUsername, repoPassword and repoUrl on "gradle.properties" file in order to use this task. 56 | /* 57 | uploadArchives { 58 | repositories.mavenDeployer { 59 | configuration = configurations.deployerJars 60 | repository(url: repoUrl) { 61 | authentication(userName: repoUsername, password: repoPassword) 62 | } 63 | pom.version = muPdfversionName 64 | pom.artifactId = "mupdf-android" 65 | pom.groupId = "com.viafirma" 66 | } 67 | } 68 | */ 69 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Applications/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/androidTest/java/com/artifex/viafirma/mupdf/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.artifex.viafirma.mupdf; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 17 | 21 | 22 | 26 | 27 | 31 | 32 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/Annotation.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.RectF; 4 | 5 | public class Annotation extends RectF { 6 | enum Type { 7 | TEXT, LINK, FREETEXT, LINE, SQUARE, CIRCLE, POLYGON, POLYLINE, HIGHLIGHT, 8 | UNDERLINE, SQUIGGLY, STRIKEOUT, STAMP, CARET, INK, POPUP, FILEATTACHMENT, 9 | SOUND, MOVIE, WIDGET, SCREEN, PRINTERMARK, TRAPNET, WATERMARK, A3D, UNKNOWN 10 | } 11 | 12 | public final Type type; 13 | 14 | public Annotation(float x0, float y0, float x1, float y1, int _type) { 15 | super(x0, y0, x1, y1); 16 | type = _type == -1 ? Type.UNKNOWN : Type.values()[_type]; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/CancellableAsyncTask.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import java.util.concurrent.CancellationException; 4 | import java.util.concurrent.ExecutionException; 5 | 6 | // Ideally this would be a subclass of AsyncTask, however the cancel() method is final, and cannot 7 | // be overridden. I felt that having two different, but similar cancel methods was a bad idea. 8 | public class CancellableAsyncTask 9 | { 10 | private final AsyncTask asyncTask; 11 | private final CancellableTaskDefinition ourTask; 12 | 13 | public void onPreExecute() 14 | { 15 | 16 | } 17 | 18 | public void onPostExecute(Result result) 19 | { 20 | 21 | } 22 | 23 | public CancellableAsyncTask(final CancellableTaskDefinition task) 24 | { 25 | if (task == null) 26 | throw new IllegalArgumentException(); 27 | 28 | this.ourTask = task; 29 | asyncTask = new AsyncTask() 30 | { 31 | @Override 32 | protected Result doInBackground(Params... params) 33 | { 34 | return task.doInBackground(params); 35 | } 36 | 37 | @Override 38 | protected void onPreExecute() 39 | { 40 | CancellableAsyncTask.this.onPreExecute(); 41 | } 42 | 43 | @Override 44 | protected void onPostExecute(Result result) 45 | { 46 | CancellableAsyncTask.this.onPostExecute(result); 47 | task.doCleanup(); 48 | } 49 | }; 50 | } 51 | 52 | public void cancelAndWait() 53 | { 54 | this.asyncTask.cancel(true); 55 | ourTask.doCancel(); 56 | 57 | try 58 | { 59 | this.asyncTask.get(); 60 | } 61 | catch (InterruptedException e) 62 | { 63 | } 64 | catch (ExecutionException e) 65 | { 66 | } 67 | catch (CancellationException e) 68 | { 69 | } 70 | 71 | ourTask.doCleanup(); 72 | } 73 | 74 | public void execute(Params ... params) 75 | { 76 | asyncTask.execute(params); 77 | } 78 | 79 | } 80 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/CancellableTaskDefinition.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public interface CancellableTaskDefinition 4 | { 5 | public Result doInBackground(Params... params); 6 | public void doCancel(); 7 | public void doCleanup(); 8 | } 9 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/ChoosePDFAdapter.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import java.util.LinkedList; 4 | 5 | import android.graphics.Color; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.BaseAdapter; 10 | import android.widget.ImageView; 11 | import android.widget.TextView; 12 | 13 | public class ChoosePDFAdapter extends BaseAdapter { 14 | private final LinkedList mItems; 15 | private final LayoutInflater mInflater; 16 | 17 | public ChoosePDFAdapter(LayoutInflater inflater) { 18 | mInflater = inflater; 19 | mItems = new LinkedList(); 20 | } 21 | 22 | public void clear() { 23 | mItems.clear(); 24 | } 25 | 26 | public void add(ChoosePDFItem item) { 27 | mItems.add(item); 28 | notifyDataSetChanged(); 29 | } 30 | 31 | public int getCount() { 32 | return mItems.size(); 33 | } 34 | 35 | public Object getItem(int i) { 36 | return null; 37 | } 38 | 39 | public long getItemId(int arg0) { 40 | return 0; 41 | } 42 | 43 | private int iconForType(ChoosePDFItem.Type type) { 44 | switch (type) { 45 | case PARENT: return R.drawable.ic_arrow_up; 46 | case DIR: return R.drawable.ic_dir; 47 | case DOC: return R.drawable.ic_doc; 48 | default: return 0; 49 | } 50 | } 51 | 52 | public View getView(int position, View convertView, ViewGroup parent) { 53 | View v; 54 | if (convertView == null) { 55 | v = mInflater.inflate(R.layout.picker_entry, null); 56 | } else { 57 | v = convertView; 58 | } 59 | ChoosePDFItem item = mItems.get(position); 60 | ((TextView)v.findViewById(R.id.name)).setText(item.name); 61 | ((ImageView)v.findViewById(R.id.icon)).setImageResource(iconForType(item.type)); 62 | ((ImageView)v.findViewById(R.id.icon)).setColorFilter(Color.argb(255, 0, 0, 0)); 63 | return v; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/ChoosePDFItem.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class ChoosePDFItem { 4 | enum Type { 5 | PARENT, DIR, DOC 6 | } 7 | 8 | final public Type type; 9 | final public String name; 10 | 11 | public ChoosePDFItem (Type t, String n) { 12 | type = t; 13 | name = n; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/FilePicker.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.net.Uri; 4 | 5 | public abstract class FilePicker { 6 | public interface FilePickerSupport { 7 | void performPickFor(FilePicker picker); 8 | } 9 | 10 | private final FilePickerSupport support; 11 | 12 | FilePicker(FilePickerSupport _support) { 13 | support = _support; 14 | } 15 | 16 | void pick() { 17 | support.performPickFor(this); 18 | } 19 | 20 | abstract void onPick(Uri uri); 21 | } 22 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/LinkInfo.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.RectF; 4 | 5 | public class LinkInfo { 6 | final public RectF rect; 7 | 8 | public LinkInfo(float l, float t, float r, float b) { 9 | rect = new RectF(l, t, r, b); 10 | } 11 | 12 | public void acceptVisitor(LinkInfoVisitor visitor) { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/LinkInfoExternal.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class LinkInfoExternal extends LinkInfo { 4 | final public String url; 5 | 6 | public LinkInfoExternal(float l, float t, float r, float b, String u) { 7 | super(l, t, r, b); 8 | url = u; 9 | } 10 | 11 | public void acceptVisitor(LinkInfoVisitor visitor) { 12 | visitor.visitExternal(this); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/LinkInfoInternal.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class LinkInfoInternal extends LinkInfo { 4 | final public int pageNumber; 5 | 6 | public LinkInfoInternal(float l, float t, float r, float b, int p) { 7 | super(l, t, r, b); 8 | pageNumber = p; 9 | } 10 | 11 | public void acceptVisitor(LinkInfoVisitor visitor) { 12 | visitor.visitInternal(this); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/LinkInfoRemote.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class LinkInfoRemote extends LinkInfo { 4 | final public String fileSpec; 5 | final public int pageNumber; 6 | final public boolean newWindow; 7 | 8 | public LinkInfoRemote(float l, float t, float r, float b, String f, int p, boolean n) { 9 | super(l, t, r, b); 10 | fileSpec = f; 11 | pageNumber = p; 12 | newWindow = n; 13 | } 14 | 15 | public void acceptVisitor(LinkInfoVisitor visitor) { 16 | visitor.visitRemote(this); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/LinkInfoVisitor.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | abstract public class LinkInfoVisitor { 4 | public abstract void visitInternal(LinkInfoInternal li); 5 | public abstract void visitExternal(LinkInfoExternal li); 6 | public abstract void visitRemote(LinkInfoRemote li); 7 | } 8 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFAlert.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class MuPDFAlert { 4 | public enum IconType {Error,Warning,Question,Status}; 5 | public enum ButtonPressed {None,Ok,Cancel,No,Yes}; 6 | public enum ButtonGroupType {Ok,OkCancel,YesNo,YesNoCancel}; 7 | 8 | public final String message; 9 | public final IconType iconType; 10 | public final ButtonGroupType buttonGroupType; 11 | public final String title; 12 | public ButtonPressed buttonPressed; 13 | 14 | MuPDFAlert(String aMessage, IconType aIconType, ButtonGroupType aButtonGroupType, String aTitle, ButtonPressed aButtonPressed) { 15 | message = aMessage; 16 | iconType = aIconType; 17 | buttonGroupType = aButtonGroupType; 18 | title = aTitle; 19 | buttonPressed = aButtonPressed; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFAlertInternal.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | // Version of MuPDFAlert without enums to simplify JNI 4 | public class MuPDFAlertInternal { 5 | public final String message; 6 | public final int iconType; 7 | public final int buttonGroupType; 8 | public final String title; 9 | public int buttonPressed; 10 | 11 | MuPDFAlertInternal(String aMessage, int aIconType, int aButtonGroupType, String aTitle, int aButtonPressed) { 12 | message = aMessage; 13 | iconType = aIconType; 14 | buttonGroupType = aButtonGroupType; 15 | title = aTitle; 16 | buttonPressed = aButtonPressed; 17 | } 18 | 19 | MuPDFAlertInternal(MuPDFAlert alert) { 20 | message = alert.message; 21 | iconType = alert.iconType.ordinal(); 22 | buttonGroupType = alert.buttonGroupType.ordinal(); 23 | title = alert.message; 24 | buttonPressed = alert.buttonPressed.ordinal(); 25 | } 26 | 27 | MuPDFAlert toAlert() { 28 | return new MuPDFAlert(message, MuPDFAlert.IconType.values()[iconType], MuPDFAlert.ButtonGroupType.values()[buttonGroupType], title, MuPDFAlert.ButtonPressed.values()[buttonPressed]); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFCancellableTaskDefinition.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public abstract class MuPDFCancellableTaskDefinition implements CancellableTaskDefinition 4 | { 5 | private MuPDFCore.Cookie cookie; 6 | 7 | public MuPDFCancellableTaskDefinition(MuPDFCore core) 8 | { 9 | this.cookie = core.new Cookie(); 10 | } 11 | 12 | @Override 13 | public void doCancel() 14 | { 15 | if (cookie == null) 16 | return; 17 | 18 | cookie.abort(); 19 | } 20 | 21 | @Override 22 | public void doCleanup() 23 | { 24 | if (cookie == null) 25 | return; 26 | 27 | cookie.destroy(); 28 | cookie = null; 29 | } 30 | 31 | @Override 32 | public final Result doInBackground(Params ... params) 33 | { 34 | return doInBackground(cookie, params); 35 | } 36 | 37 | public abstract Result doInBackground(MuPDFCore.Cookie cookie, Params ... params); 38 | } 39 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFPageAdapter.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.content.Context; 4 | import android.graphics.Point; 5 | import android.graphics.PointF; 6 | import android.util.SparseArray; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.BaseAdapter; 10 | 11 | import com.artifex.utils.PdfBitmap; 12 | 13 | import java.util.Collection; 14 | import java.util.HashSet; 15 | import java.util.Set; 16 | 17 | public class MuPDFPageAdapter extends BaseAdapter { 18 | private final Context mContext; 19 | private final FilePicker.FilePickerSupport mFilePickerSupport; 20 | private final MuPDFCore mCore; 21 | private final SparseArray mPageSizes = new SparseArray(); 22 | private SparseArray pages = new SparseArray(); 23 | private Collection pdfBitmapList; // Each signature for each page. 24 | private int numSignature; 25 | 26 | public MuPDFPageAdapter(Context c, FilePicker.FilePickerSupport filePickerSupport, MuPDFCore core) { 27 | mContext = c; 28 | mFilePickerSupport = filePickerSupport; 29 | mCore = core; 30 | } 31 | 32 | public int getCount() { 33 | return mCore.countPages(); 34 | } 35 | 36 | public Object getItem(int position) { 37 | return pages.get(position); 38 | } 39 | 40 | public long getItemId(int position) { 41 | return 0; 42 | } 43 | 44 | public View getView(final int position, View convertView, ViewGroup parent) { 45 | 46 | final MuPDFPageView pageView; 47 | if (pages.get(position) == null) { 48 | pageView = new MuPDFPageView(mContext, mFilePickerSupport, mCore, new Point(parent.getWidth(), parent.getHeight()), this); 49 | pages.put(position, pageView); 50 | } else { 51 | pageView = pages.get(position); 52 | } 53 | 54 | //Limit the pages cache to improve memory usage 55 | if(pages.size()>3){ 56 | if(position>1) { 57 | MuPDFPageView previous = pages.get(position - 2); 58 | if(previous!=null){ 59 | pages.removeAt(pages.indexOfValue(previous)); 60 | previous=null; 61 | } 62 | MuPDFPageView post = pages.get(position + 2); 63 | if (post != null) { 64 | pages.removeAt(pages.indexOfValue(post)); 65 | post = null; 66 | } 67 | } 68 | } 69 | 70 | PointF pageSize = mPageSizes.get(position); 71 | if (pageSize != null) { 72 | // We already know the page size. Set it up 73 | // immediately 74 | pageView.setPage(position, pageSize); 75 | } else { 76 | // Page size as yet unknown. Blank it for now, and 77 | // start a background task to find the size 78 | pageView.blank(position); 79 | AsyncTask sizingTask = new AsyncTask() { 80 | @Override 81 | protected PointF doInBackground(Void... arg0) { 82 | return mCore.getPageSize(position); 83 | } 84 | 85 | @Override 86 | protected void onPostExecute(PointF result) { 87 | super.onPostExecute(result); 88 | // We now know the page size 89 | mPageSizes.put(position, result); 90 | // Check that this view hasn't been reused for 91 | // another page since we started 92 | if (pageView.getPage() == position) 93 | pageView.setPage(position, result); 94 | } 95 | }; 96 | 97 | sizingTask.execute((Void)null); 98 | } 99 | return pageView; 100 | } 101 | 102 | public Collection getPdfBitmapList() { 103 | if (pdfBitmapList == null) { 104 | pdfBitmapList = new HashSet(); 105 | } 106 | return pdfBitmapList; 107 | } 108 | 109 | public void setPdfBitmapList(Collection pdfBitmapList) { 110 | this.pdfBitmapList = pdfBitmapList; 111 | } 112 | 113 | public int getNumSignature() { 114 | return numSignature; 115 | } 116 | 117 | public void setNumSignature(int numSignature) { 118 | this.numSignature = numSignature; 119 | } 120 | 121 | public void addBitmaps(Set pdfBitmaps) { 122 | if (pdfBitmaps != null) { 123 | for (PdfBitmap pdfBitmap : pdfBitmaps) { 124 | addBitmap(pdfBitmap); 125 | } 126 | } 127 | } 128 | 129 | public void addBitmap(PdfBitmap pdfBitmap) { 130 | if (pdfBitmap.getType() == PdfBitmap.Type.SIGNATURE) { //mAdapter null ??? 131 | numSignature = numSignature + 1; 132 | } 133 | getPdfBitmapList().add(pdfBitmap); 134 | } 135 | 136 | } 137 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFReflowAdapter.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.content.Context; 4 | import android.graphics.Point; 5 | import android.graphics.PointF; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.BaseAdapter; 9 | 10 | public class MuPDFReflowAdapter extends BaseAdapter { 11 | private final Context mContext; 12 | private final MuPDFCore mCore; 13 | 14 | public MuPDFReflowAdapter(Context c, MuPDFCore core) { 15 | mContext = c; 16 | mCore = core; 17 | } 18 | 19 | public int getCount() { 20 | return mCore.countPages(); 21 | } 22 | 23 | public Object getItem(int arg0) { 24 | return null; 25 | } 26 | 27 | public long getItemId(int arg0) { 28 | return 0; 29 | } 30 | 31 | public View getView(int position, View convertView, ViewGroup parent) { 32 | final MuPDFReflowView reflowView; 33 | if (convertView == null) { 34 | reflowView = new MuPDFReflowView(mContext, mCore, new Point(parent.getWidth(), parent.getHeight())); 35 | } else { 36 | reflowView = (MuPDFReflowView) convertView; 37 | } 38 | 39 | reflowView.setPage(position, new PointF()); 40 | 41 | return reflowView; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFReflowView.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.content.Context; 4 | import android.graphics.Point; 5 | import android.graphics.PointF; 6 | import android.graphics.RectF; 7 | import android.os.Handler; 8 | import android.util.Base64; 9 | import android.view.MotionEvent; 10 | import android.view.View; 11 | import android.webkit.WebView; 12 | import android.webkit.WebViewClient; 13 | 14 | public class MuPDFReflowView extends WebView implements MuPDFView { 15 | private final MuPDFCore mCore; 16 | private final Handler mHandler; 17 | private final Point mParentSize; 18 | private int mPage; 19 | private float mScale; 20 | private int mContentHeight; 21 | AsyncTask mLoadHTML; 22 | 23 | public MuPDFReflowView(Context c, MuPDFCore core, Point parentSize) { 24 | super(c); 25 | mHandler = new Handler(); 26 | mCore = core; 27 | mParentSize = parentSize; 28 | mScale = 1.0f; 29 | mContentHeight = parentSize.y; 30 | getSettings().setJavaScriptEnabled(true); 31 | addJavascriptInterface(new Object(){ 32 | public void reportContentHeight(String value) { 33 | mContentHeight = (int)Float.parseFloat(value); 34 | mHandler.post(new Runnable() { 35 | public void run() { 36 | requestLayout(); 37 | } 38 | }); 39 | } 40 | }, "HTMLOUT"); 41 | setWebViewClient(new WebViewClient() { 42 | @Override 43 | public void onPageFinished(WebView view, String url) { 44 | setScale(mScale); 45 | } 46 | }); 47 | } 48 | 49 | private void requestHeight() { 50 | // Get the webview to report the content height via the interface setup 51 | // above. Workaround for getContentHeight not working 52 | loadUrl("javascript:elem=document.getElementById('content');window.HTMLOUT.reportContentHeight("+mParentSize.x+"*elem.offsetHeight/elem.offsetWidth)"); 53 | } 54 | 55 | public void setPage(int page, PointF size) { 56 | mPage = page; 57 | if (mLoadHTML != null) { 58 | mLoadHTML.cancel(true); 59 | } 60 | mLoadHTML = new AsyncTask() { 61 | @Override 62 | protected byte[] doInBackground(Void... params) { 63 | return mCore.html(mPage); 64 | } 65 | @Override 66 | protected void onPostExecute(byte[] result) { 67 | String b64 = Base64.encodeToString(result, Base64.DEFAULT); 68 | loadData(b64, "text/html; charset=utf-8", "base64"); 69 | } 70 | }; 71 | mLoadHTML.execute(); 72 | } 73 | 74 | public int getPage() { 75 | return mPage; 76 | } 77 | 78 | public void setScale(float scale) { 79 | mScale = scale; 80 | loadUrl("javascript:document.getElementById('content').style.zoom=\""+(int)(mScale*100)+"%\""); 81 | requestHeight(); 82 | } 83 | 84 | public void blank(int page) { 85 | } 86 | 87 | public Hit passClickEvent(float x, float y) { 88 | return Hit.Nothing; 89 | } 90 | 91 | public LinkInfo hitLink(float x, float y) { 92 | return null; 93 | } 94 | 95 | public void selectText(float x0, float y0, float x1, float y1) { 96 | } 97 | 98 | public void deselectText() { 99 | } 100 | 101 | public boolean copySelection() { 102 | return false; 103 | } 104 | 105 | public boolean markupSelection(Annotation.Type type) { 106 | return false; 107 | } 108 | 109 | public void startDraw(float x, float y) { 110 | } 111 | 112 | public void continueDraw(float x, float y) { 113 | } 114 | 115 | public void cancelDraw() { 116 | } 117 | 118 | public boolean saveDraw() { 119 | return false; 120 | } 121 | 122 | public void setSearchBoxes(RectF[] searchBoxes) { 123 | } 124 | 125 | public void setLinkHighlighting(boolean f) { 126 | } 127 | 128 | public void deleteSelectedAnnotation() { 129 | } 130 | 131 | public void deselectAnnotation() { 132 | } 133 | 134 | public void setChangeReporter(Runnable reporter) { 135 | } 136 | 137 | public void update() { 138 | } 139 | 140 | public void updateHq(boolean update) { 141 | } 142 | 143 | public void removeHq() { 144 | } 145 | 146 | public void releaseResources() { 147 | if (mLoadHTML != null) { 148 | mLoadHTML.cancel(true); 149 | mLoadHTML = null; 150 | } 151 | } 152 | 153 | public void releaseBitmaps() { 154 | } 155 | 156 | @Override 157 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 158 | int x, y; 159 | switch(MeasureSpec.getMode(widthMeasureSpec)) { 160 | case MeasureSpec.UNSPECIFIED: 161 | x = mParentSize.x; 162 | break; 163 | default: 164 | x = MeasureSpec.getSize(widthMeasureSpec); 165 | } 166 | switch(MeasureSpec.getMode(heightMeasureSpec)) { 167 | case MeasureSpec.UNSPECIFIED: 168 | y = mContentHeight; 169 | break; 170 | default: 171 | y = MeasureSpec.getSize(heightMeasureSpec); 172 | } 173 | 174 | setMeasuredDimension(x, y); 175 | } 176 | 177 | @Override 178 | public boolean onTouchEvent(MotionEvent ev) { 179 | // TODO Auto-generated method stub 180 | return false; 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/MuPDFView.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.PointF; 4 | import android.graphics.RectF; 5 | 6 | enum Hit {Nothing, Widget, Annotation}; 7 | 8 | public interface MuPDFView { 9 | public void setPage(int page, PointF size); 10 | public void setScale(float scale); 11 | public int getPage(); 12 | public void blank(int page); 13 | public Hit passClickEvent(float x, float y); 14 | public LinkInfo hitLink(float x, float y); 15 | public void selectText(float x0, float y0, float x1, float y1); 16 | public void deselectText(); 17 | public boolean copySelection(); 18 | public boolean markupSelection(Annotation.Type type); 19 | public void deleteSelectedAnnotation(); 20 | public void setSearchBoxes(RectF searchBoxes[]); 21 | public void setLinkHighlighting(boolean f); 22 | public void deselectAnnotation(); 23 | public void startDraw(float x, float y); 24 | public void continueDraw(float x, float y); 25 | public void cancelDraw(); 26 | public boolean saveDraw(); 27 | public void setChangeReporter(Runnable reporter); 28 | public void update(); 29 | public void updateHq(boolean update); 30 | public void removeHq(); 31 | public void releaseResources(); 32 | public void releaseBitmaps(); 33 | } 34 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/OutlineActivity.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.app.ListActivity; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | import android.widget.ListView; 7 | 8 | public class OutlineActivity extends ListActivity { 9 | OutlineItem mItems[]; 10 | 11 | /** Called when the activity is first created. */ 12 | @Override 13 | public void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | 16 | mItems = OutlineActivityData.get().items; 17 | setListAdapter(new OutlineAdapter(getLayoutInflater(),mItems)); 18 | // Restore the position within the list from last viewing 19 | getListView().setSelection(OutlineActivityData.get().position); 20 | getListView().setDividerHeight(0); 21 | setResult(-1); 22 | } 23 | 24 | @Override 25 | protected void onListItemClick(ListView l, View v, int position, long id) { 26 | super.onListItemClick(l, v, position, id); 27 | OutlineActivityData.get().position = getListView().getFirstVisiblePosition(); 28 | setResult(mItems[position].page); 29 | finish(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/OutlineActivityData.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class OutlineActivityData { 4 | public OutlineItem items[]; 5 | public int position; 6 | static private OutlineActivityData singleton; 7 | 8 | static public void set(OutlineActivityData d) { 9 | singleton = d; 10 | } 11 | 12 | static public OutlineActivityData get() { 13 | if (singleton == null) 14 | singleton = new OutlineActivityData(); 15 | return singleton; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/OutlineAdapter.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.view.LayoutInflater; 4 | import android.view.View; 5 | import android.view.ViewGroup; 6 | import android.widget.BaseAdapter; 7 | import android.widget.TextView; 8 | 9 | public class OutlineAdapter extends BaseAdapter { 10 | private final OutlineItem mItems[]; 11 | private final LayoutInflater mInflater; 12 | public OutlineAdapter(LayoutInflater inflater, OutlineItem items[]) { 13 | mInflater = inflater; 14 | mItems = items; 15 | } 16 | 17 | public int getCount() { 18 | return mItems.length; 19 | } 20 | 21 | public Object getItem(int arg0) { 22 | return null; 23 | } 24 | 25 | public long getItemId(int arg0) { 26 | return 0; 27 | } 28 | 29 | public View getView(int position, View convertView, ViewGroup parent) { 30 | View v; 31 | if (convertView == null) { 32 | v = mInflater.inflate(R.layout.outline_entry, null); 33 | } else { 34 | v = convertView; 35 | } 36 | int level = mItems[position].level; 37 | if (level > 8) level = 8; 38 | String space = ""; 39 | for (int i=0; i= 0) { 86 | baos.write(buffer, 0, n); 87 | n = is.read(buffer); 88 | } 89 | is.close(); 90 | baos.flush(); 91 | 92 | return Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); 93 | } catch (Throwable e) { 94 | resultCode = RESULT_CANCELED; 95 | setResult(resultCode); 96 | finish(); 97 | e.printStackTrace(); 98 | } 99 | return ""; 100 | } 101 | 102 | public String getEncoding() { 103 | return CONTENT_TRANSFER_ENCODING; 104 | } 105 | 106 | public void onPostMessage(String message) { 107 | if (message.startsWith(CLOSE_POST_MESSAGE_NAME)) { 108 | setResult(resultCode); 109 | finish(); 110 | } 111 | } 112 | } 113 | 114 | private final class PrintDialogWebClient extends WebViewClient { 115 | @Override 116 | public boolean shouldOverrideUrlLoading(WebView view, String url) { 117 | if (url.startsWith(ZXING_URL)) { 118 | Intent intentScan = new Intent("com.google.zxing.client.android.SCAN"); 119 | intentScan.putExtra("SCAN_MODE", "QR_CODE_MODE"); 120 | try { 121 | startActivityForResult(intentScan, ZXING_SCAN_REQUEST); 122 | } catch (ActivityNotFoundException error) { 123 | view.loadUrl(url); 124 | } 125 | } else { 126 | view.loadUrl(url); 127 | } 128 | return false; 129 | } 130 | 131 | @Override 132 | public void onPageFinished(WebView view, String url) { 133 | if (PRINT_DIALOG_URL.equals(url)) { 134 | // Submit print document. 135 | view.loadUrl("javascript:printDialog.setPrintDocument(printDialog.createPrintDocument(" 136 | + "window." + JS_INTERFACE + ".getType(),window." + JS_INTERFACE + ".getTitle()," 137 | + "window." + JS_INTERFACE + ".getContent(),window." + JS_INTERFACE + ".getEncoding()))"); 138 | 139 | // Add post messages listener. 140 | view.loadUrl("javascript:window.addEventListener('message'," 141 | + "function(evt){window." + JS_INTERFACE + ".onPostMessage(evt.data)}, false)"); 142 | } 143 | } 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/SafeAnimatorInflater.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.animation.Animator; 4 | import android.animation.AnimatorInflater; 5 | import android.animation.AnimatorSet; 6 | import android.app.Activity; 7 | import android.view.View; 8 | 9 | public class SafeAnimatorInflater 10 | { 11 | private View mView; 12 | 13 | public SafeAnimatorInflater(Activity activity, int animation, View view) 14 | { 15 | AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(activity, R.animator.info); 16 | mView = view; 17 | set.setTarget(view); 18 | set.addListener(new Animator.AnimatorListener() { 19 | public void onAnimationStart(Animator animation) { 20 | mView.setVisibility(View.VISIBLE); 21 | } 22 | 23 | public void onAnimationRepeat(Animator animation) { 24 | } 25 | 26 | public void onAnimationEnd(Animator animation) { 27 | mView.setVisibility(View.INVISIBLE); 28 | } 29 | 30 | public void onAnimationCancel(Animator animation) { 31 | } 32 | }); 33 | set.start(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/SearchTask.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.app.AlertDialog; 4 | import android.app.ProgressDialog; 5 | import android.content.Context; 6 | import android.content.DialogInterface; 7 | import android.graphics.RectF; 8 | import android.os.Handler; 9 | 10 | class ProgressDialogX extends ProgressDialog { 11 | public ProgressDialogX(Context context) { 12 | super(context); 13 | } 14 | 15 | private boolean mCancelled = false; 16 | 17 | public boolean isCancelled() { 18 | return mCancelled; 19 | } 20 | 21 | @Override 22 | public void cancel() { 23 | mCancelled = true; 24 | super.cancel(); 25 | } 26 | } 27 | 28 | public abstract class SearchTask { 29 | private static final int SEARCH_PROGRESS_DELAY = 200; 30 | private final Context mContext; 31 | private final MuPDFCore mCore; 32 | private final Handler mHandler; 33 | private final AlertDialog.Builder mAlertBuilder; 34 | private AsyncTask mSearchTask; 35 | 36 | public SearchTask(Context context, MuPDFCore core) { 37 | mContext = context; 38 | mCore = core; 39 | mHandler = new Handler(); 40 | mAlertBuilder = new AlertDialog.Builder(context); 41 | } 42 | 43 | protected abstract void onTextFound(SearchTaskResult result); 44 | 45 | public void stop() { 46 | if (mSearchTask != null) { 47 | mSearchTask.cancel(true); 48 | mSearchTask = null; 49 | } 50 | } 51 | 52 | public void go(final String text, int direction, int displayPage, int searchPage) { 53 | if (mCore == null) 54 | return; 55 | stop(); 56 | 57 | final int increment = direction; 58 | final int startIndex = searchPage == -1 ? displayPage : searchPage + increment; 59 | 60 | final ProgressDialogX progressDialog = new ProgressDialogX(mContext); 61 | progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 62 | progressDialog.setTitle(mContext.getString(R.string.searching_)); 63 | progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 64 | public void onCancel(DialogInterface dialog) { 65 | stop(); 66 | } 67 | }); 68 | progressDialog.setMax(mCore.countPages()); 69 | 70 | mSearchTask = new AsyncTask() { 71 | @Override 72 | protected SearchTaskResult doInBackground(Void... params) { 73 | int index = startIndex; 74 | 75 | while (0 <= index && index < mCore.countPages() && !isCancelled()) { 76 | publishProgress(index); 77 | RectF searchHits[] = mCore.searchPage(index, text); 78 | 79 | if (searchHits != null && searchHits.length > 0) 80 | return new SearchTaskResult(text, index, searchHits); 81 | 82 | index += increment; 83 | } 84 | return null; 85 | } 86 | 87 | @Override 88 | protected void onPostExecute(SearchTaskResult result) { 89 | progressDialog.cancel(); 90 | if (result != null) { 91 | onTextFound(result); 92 | } else { 93 | mAlertBuilder.setTitle(SearchTaskResult.get() == null ? R.string.text_not_found : R.string.no_further_occurrences_found); 94 | AlertDialog alert = mAlertBuilder.create(); 95 | alert.setButton(AlertDialog.BUTTON_POSITIVE, mContext.getString(R.string.dismiss), 96 | (DialogInterface.OnClickListener)null); 97 | alert.show(); 98 | } 99 | } 100 | 101 | @Override 102 | protected void onCancelled() { 103 | progressDialog.cancel(); 104 | } 105 | 106 | @Override 107 | protected void onProgressUpdate(Integer... values) { 108 | progressDialog.setProgress(values[0].intValue()); 109 | } 110 | 111 | @Override 112 | protected void onPreExecute() { 113 | super.onPreExecute(); 114 | mHandler.postDelayed(new Runnable() { 115 | public void run() { 116 | if (!progressDialog.isCancelled()) 117 | { 118 | progressDialog.show(); 119 | progressDialog.setProgress(startIndex); 120 | } 121 | } 122 | }, SEARCH_PROGRESS_DELAY); 123 | } 124 | }; 125 | 126 | mSearchTask.execute(); 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/SearchTaskResult.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.RectF; 4 | 5 | public class SearchTaskResult { 6 | public final String txt; 7 | public final int pageNumber; 8 | public final RectF searchBoxes[]; 9 | static private SearchTaskResult singleton; 10 | 11 | SearchTaskResult(String _txt, int _pageNumber, RectF _searchBoxes[]) { 12 | txt = _txt; 13 | pageNumber = _pageNumber; 14 | searchBoxes = _searchBoxes; 15 | } 16 | 17 | static public SearchTaskResult get() { 18 | return singleton; 19 | } 20 | 21 | static public void set(SearchTaskResult r) { 22 | singleton = r; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/Stepper.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.os.Build; 5 | import android.view.View; 6 | 7 | public class Stepper { 8 | protected final View mPoster; 9 | protected final Runnable mTask; 10 | protected boolean mPending; 11 | 12 | public Stepper(View v, Runnable r) { 13 | mPoster = v; 14 | mTask = r; 15 | mPending = false; 16 | } 17 | 18 | @SuppressLint("NewApi") 19 | public void prod() { 20 | if (!mPending) { 21 | mPending = true; 22 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 23 | mPoster.postOnAnimation(new Runnable() { 24 | @Override 25 | public void run() { 26 | mPending = false; 27 | mTask.run(); 28 | } 29 | }); 30 | } else { 31 | mPoster.post(new Runnable() { 32 | @Override 33 | public void run() { 34 | mPending = false; 35 | mTask.run(); 36 | } 37 | }); 38 | 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/TextChar.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.RectF; 4 | 5 | public class TextChar extends RectF { 6 | public char c; 7 | 8 | public TextChar(float x0, float y0, float x1, float y1, char _c) { 9 | super(x0, y0, x1, y1); 10 | c = _c; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/TextWord.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.RectF; 4 | 5 | public class TextWord extends RectF { 6 | public String w; 7 | 8 | public TextWord() { 9 | super(); 10 | w = new String(); 11 | } 12 | 13 | public void Add(TextChar tc) { 14 | super.union(tc); 15 | w = w.concat(new String(new char[]{tc.c})); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/mupdfdemo/WidgetType.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public enum WidgetType { 4 | NONE, 5 | TEXT, 6 | LISTBOX, 7 | COMBOBOX, 8 | SIGNATURE 9 | } 10 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/utils/DigitalizedEventCallback.java: -------------------------------------------------------------------------------- 1 | package com.artifex.utils; 2 | 3 | /** 4 | * Created by @elage on 6/2/15. 5 | */ 6 | public interface DigitalizedEventCallback { 7 | 8 | public static final String ERROR_OUTSIDE_VERTICAL = "ERROR_OUTSIDE_VERTICAL"; 9 | public static final String ERROR_OUTSIDE_HORIZONTAL = "ERROR_OUTSIDE_HORIZONTAL"; 10 | 11 | public void longPressOnPdfPosition(int page, float viewX, float viewY, float pdfX, float pdfY); 12 | public void doubleTapOnPdfPosition(int page, float viewX, float viewY, float pdfX, float pdfY); 13 | public void singleTapOnPdfPosition(int page, float viewX, float viewY, float pdfX, float pdfY); 14 | public void error(String message); 15 | } 16 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/java/com/artifex/utils/PdfBitmap.java: -------------------------------------------------------------------------------- 1 | package com.artifex.utils; 2 | 3 | import android.graphics.Bitmap; 4 | import android.os.Parcel; 5 | import android.os.Parcelable; 6 | import android.util.Log; 7 | 8 | import java.io.Serializable; 9 | import java.util.HashMap; 10 | 11 | public class PdfBitmap implements Parcelable { 12 | 13 | public enum Type { 14 | SIGNATURE, // Signature used to sign the document 15 | SIGNATURE_USER_IMAGE, // User image of some older versions on Viafirma, where we sent the image to the server for it to process that along with the signature. 16 | IMAGE // All generic images shown 17 | }; 18 | 19 | private Bitmap image; 20 | private int height; 21 | private int width; 22 | private int pageNumber; 23 | private int pdfX; 24 | private int pdfY; 25 | private Type type; 26 | private boolean isRemovable; 27 | private HashMap metadata; 28 | 29 | /** 30 | * This class is used to store the information of each stamp and annotation on the PDF. 31 | * @param image The bitmap in charge of storing the stamp or annotation 32 | * @param height The height defined for the drawing 33 | * @param width The width defined for the drawing 34 | * @param pdfX The X coordinate position defined for the drawing 35 | * @param pdfY The Y coordinate position defined for the drawing 36 | * @param page The page of the PDF where the bitmap is added 37 | */ 38 | public PdfBitmap(Bitmap image, int width, int height, int pdfX, int pdfY, int page, Type type) { 39 | this.image = image; 40 | this.height = height; 41 | this.width = width; 42 | this.pdfX = pdfX; 43 | this.pdfY = pdfY; 44 | this.pageNumber = page;// first page is 0 45 | this.type = type; 46 | this.isRemovable = true; 47 | this.metadata = new HashMap<>(); 48 | } 49 | 50 | public PdfBitmap(Parcel in) { 51 | // We just need to read back each 52 | // field in the order that it was 53 | image = in.readParcelable(Bitmap.class.getClassLoader()); 54 | height = in.readInt(); 55 | width = in.readInt(); 56 | pdfX = in.readInt(); 57 | pdfY = in.readInt(); 58 | pageNumber = in.readInt(); 59 | String typeString = in.readString(); 60 | if (typeString != null) { 61 | type = Type.valueOf(typeString); 62 | } 63 | isRemovable = in.readByte() != 0; 64 | in.readMap(metadata, HashMap.class.getClassLoader()); 65 | } 66 | 67 | public Bitmap getBitmapImage() { 68 | return image; 69 | } 70 | 71 | public int getWidth() { 72 | return width; 73 | } 74 | 75 | public int getHeight() { 76 | return height; 77 | } 78 | 79 | public int getPageNumber() { 80 | return pageNumber; 81 | } 82 | 83 | @Override 84 | public int describeContents() { 85 | return 0; 86 | } 87 | 88 | @Override 89 | public void writeToParcel(Parcel dest, int flags) { 90 | dest.writeParcelable(image, flags); 91 | dest.writeInt(height); 92 | dest.writeInt(width); 93 | dest.writeInt(pdfX); 94 | dest.writeInt(pdfY); 95 | dest.writeInt(pageNumber); 96 | dest.writeString(type.name()); 97 | dest.writeByte((byte)(isRemovable ? 1 : 0)); 98 | dest.writeMap(metadata); 99 | } 100 | 101 | public static final Creator CREATOR = new Creator() { 102 | public PdfBitmap createFromParcel(Parcel in) { 103 | return new PdfBitmap(in); 104 | } 105 | public PdfBitmap[] newArray(int size) { 106 | return new PdfBitmap[size]; 107 | } 108 | }; 109 | 110 | public int getPdfX() { 111 | return pdfX; 112 | } 113 | 114 | public int getPdfY() { 115 | return pdfY; 116 | } 117 | 118 | public Type getType() { 119 | return type; 120 | } 121 | 122 | public void setType(Type type) { 123 | this.type = type; 124 | } 125 | 126 | public boolean isRemovable() { 127 | return isRemovable; 128 | } 129 | 130 | public void setIsRemovable(boolean isRemovable) { 131 | this.isRemovable = isRemovable; 132 | } 133 | 134 | public HashMap getMetadata() { 135 | return metadata; 136 | } 137 | 138 | public void setMetadata(HashMap metadata) { 139 | this.metadata = metadata; 140 | } 141 | 142 | @Override 143 | public String toString() { 144 | String result = "page:"+pageNumber+", x:"+pdfX+", y:"+pdfY+", width:"+width+", height:"+height+", type:"+type.name(); 145 | return result; 146 | } 147 | 148 | @Override 149 | public boolean equals(Object o) { 150 | boolean result = false; 151 | try { 152 | if (o == this) { 153 | result = true; 154 | } else if (o instanceof PdfBitmap) { 155 | PdfBitmap that = (PdfBitmap) o; 156 | boolean sameBitmaps = that.getBitmapImage().sameAs(image); 157 | result = (that.getPdfX() == pdfX) && (that.getPdfY() == pdfY) && (that.getHeight() == height) && (that.getWidth() == width) && (that.getPageNumber() == pageNumber) && sameBitmaps; 158 | } 159 | } catch (Exception e) { 160 | Log.e("PdfBitmap", e.getLocalizedMessage(), e); 161 | } 162 | return result; 163 | } 164 | } 165 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/jniLibs/armeabi-v7a/libmupdf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/jniLibs/armeabi-v7a/libmupdf.so -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/jniLibs/armeabi/libmupdf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/jniLibs/armeabi/libmupdf.so -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/animator/info.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 15 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_annot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_annot.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_annotation.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_arrow_left.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_arrow_right.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_cancel.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_check.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_clipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_clipboard.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_dir.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_doc.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_highlight.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_link.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_list.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_magnifying_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_magnifying_glass.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_more.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_pen.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_print.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_reflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_reflow.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_select.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_share.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_strike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_strike.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_trash.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_underline.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_updir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/ic_updir.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_annot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_annot.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_annotation.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_arrow_up.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_cancel.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_check.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_clipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_clipboard.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_dir.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_doc.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_highlight.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_link.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_list.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_magnifying_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_magnifying_glass.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_more.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_pen.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_print.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_reflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_reflow.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_select.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_share.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_strike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_strike.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_trash.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/ic_underline.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/busy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/darkdenim3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JubinMathai/MuPDFDemo-Java/57b614758f3fc2db9c5b3147b25726443a6e03da/MuPDFDemo/mupdf-android-master/src/main/res/drawable/darkdenim3.png -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/page_num.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/seek_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/seek_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/drawable/tiled_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/layout/outline_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/layout/picker_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/layout/print_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/layout/textentry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | قبول 4 | MuPDF 5 | إلغاء 6 | تعذر فتح المخزن المؤقت 7 | تعذر فتح المستند 8 | تعذر فتح المستند: %1$s 9 | تعذر فتح الملف: %1$s 10 | اختر قيمة 11 | تم النسخ إلى الحافظة 12 | نسخ 13 | نسخ النص 14 | نسخ النص إلى الحافظة 15 | حذف 16 | تجاهل 17 | يحتوي المستند على تغييرات. هل تريد حفظها؟ 18 | سحب تعليق توضيحي 19 | تعديل التعليقات التوضيحية 20 | أدخل كلمة المرور 21 | دخول إلى وضع إعادة التدفق 22 | تعبئة حقل النص 23 | التنسيق غير مدعوم حاليًا 24 | تظليل 25 | حبر 26 | خروج من وضع إعادة التدفق 27 | المزيد 28 | لا 29 | لم يتم العثور على متكررات أخرى 30 | مشاركة وسائط التخزين مع حاسوب شخصي قد يمنع الوصول إليها 31 | وسائط التخزين غير موجودة 32 | لم يتم تحديد نص 33 | غير مدعوم 34 | لا يوجد شيء لحفظه 35 | موافق 36 | جدول المحتويات 37 | [أعلى مستوى واحد] 38 | %1$s %2$s: %3$s 39 | طباعة 40 | فشلت الطباعة 41 | حفظ 42 | بحث 43 | بحث إلى الخلف 44 | بحث في المستند 45 | بحث إلى الأمام 46 | جاري البحث في&#8230; 47 | تحديد 48 | تحديد النص 49 | شطب 50 | لم يتم العثور على النص 51 | تظليل وتمكين الروابط 52 | تسطير 53 | نعم 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ca/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Acceptar 4 | MuPDF 5 | Cancel·lar 6 | No es pot obrir el buffer 7 | No es pot obrir el document 8 | No es pot obrir el document: %1$s 9 | No es pot obrir l\'arxiu: %1$s 10 | Tria el valor 11 | Copiat al portapapers 12 | Copiar 13 | copiar text 14 | Copiar text al portapapers 15 | Esborrar 16 | Descartar 17 | El document té canvis. Desar? 18 | Dibuixar anotació 19 | Editar anotacions 20 | Introduir contrasenya 21 | Entrant en modo de reflux 22 | Emplena el camp de text 23 | Format no suportat actualment 24 | Destacar 25 | Tinta 26 | Abandonant modo de reflux 27 | Més 28 | No 29 | No hi ha més coincidències 30 | Compartir el mitjà d\'emmagatzematge amb un PC pot fer que sigui inaccessible 31 | Mitjà d\'emmagatzematge no present 32 | No s\'ha seleccionat text 33 | No compatible 34 | No hi ha gens que guardar 35 | Acceptar 36 | Índex 37 | [Pujar un nivell] 38 | %1$s %2$s: %3$s 39 | Imprimir 40 | Fallada al imprimir 41 | Desar 42 | Buscar 43 | Buscar cap a enrere 44 | Buscar document 45 | Buscar cap a davant 46 | Buscant… 47 | Seleccionar 48 | Seleccionar text 49 | Ratllat 50 | Text no trobat 51 | Ressaltar i habilitar enllaços 52 | Subratllat 53 | 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Přijmout 4 | MuPDF 5 | Zrušit 6 | Nelze otevřít vyrovnávací paměť 7 | Nelze otevřít dokument 8 | Nelze otevřít dokument: %1$s 9 | Nelze otevřít soubor: %1$s 10 | Zvolte hodnotu 11 | Kopírováno do schránky 12 | Kopírovat 13 | kopírovat text 14 | Kopírovat text do schránky 15 | Smazat 16 | Odmítnout 17 | Dokument byl změněn. Uložit? 18 | Vložit anotaci 19 | Upravit anotace 20 | Zadat heslo 21 | Vstup do režimu přeformátování řádků 22 | Vyplnit textové pole 23 | Formát aktuálně nepodporován 24 | Zvýraznit 25 | Inkoust 26 | Odchod z režimu přeformátování řádků 27 | Více 28 | Ne 29 | Nenalezeny další výskyty 30 | Při sdílení s PC může být paměťové médium nedostupné 31 | Paměťové médim nenalezeno 32 | Nevybrán žádný text 33 | Nepodporováno 34 | Nic k uložení 35 | OK 36 | Obsah 37 | [Nahoru o jednu úroveň] 38 | %1$s %2$s: %3$s 39 | Tisk 40 | Tisk selhal 41 | Uložit 42 | Hledat 43 | Hledat zpět 44 | Prohledat dokument 45 | Hledat vpřed 46 | Hledání&#8230; 47 | Vybrat 48 | Vybrat text 49 | Přeškrtnout 50 | Text nenalezen 51 | Zvýraznit a aktivovat odkazy 52 | Podtrhnout 53 | Ano 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-da/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Accepter 4 | MuPDF 5 | Annuller 6 | Buffer kan ikke åbnes 7 | Dokument kan ikke åbnes 8 | Kan ikke åbne dokumentet: %1$s 9 | Kan ikke åbne filen: %1$s 10 | Vælg værdi 11 | Kopieret til udklipsholder 12 | Kopier 13 | kopier tekst 14 | kopier tekst til udklipsholder 15 | Slet 16 | Afvis 17 | Dokumentet er ændret. Gem ændringer? 18 | Lav anmærkning 19 | Rediger anmærkninger 20 | Indtast adgangskode 21 | Går over til konverteringstilstand 22 | Udfyld tekstfelt 23 | Format ikke understøttet i øjeblikket 24 | Fremhæv 25 | Ink 26 | Forlader konverteringstilstand 27 | Mere 28 | Nej 29 | Der blev ikke fundet flere tilfælde 30 | Deles lagermediet med en PC, kan det gøre det utilgængeligt 31 | Lagermedie ikke fundet 32 | Ingen tekst valgt 33 | Ikke understøttet 34 | Intet at gemme 35 | Okay 36 | Indholdsfortegnelse 37 | [Et niveau op] 38 | %1$s %2$s: %3$s 39 | Udskriv 40 | Udskrivning mislykket 41 | Gem 42 | Søg 43 | Søg bagud 44 | Søg i dokument 45 | Søg fremad 46 | Søger&#8230; 47 | Vælg 48 | Vælg tekst 49 | Gennemstreget 50 | Tekst ikke fundet 51 | Fremhæv og aktiver links 52 | Understreg 53 | Ja 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Akzeptieren 4 | MuPDF 5 | Abbrechen 6 | Zwischenspeicher kann nicht geöffnet werden 7 | Dokument kann nicht geöffnet werden 8 | Dokument kann nicht geöffnet werden: %1$s 9 | Datei kann nicht geöffnet werden: %1$s 10 | Wert auswählen 11 | In die Zwischenanlage kopiert 12 | Kopieren 13 | Text kopieren 14 | Text in Zwischenablage kopieren 15 | Entfernen 16 | Verwerfen 17 | Das Dokument wurde verändert. Sollen die Änderungen gespeichert werden? 18 | Kommentar einfügen 19 | Kommentar bearbeiten 20 | Passwort eingeben 21 | Anpassungsmodus wird gestartet 22 | Textfeld ausfüllen 23 | Format wird momentan nicht unterstützt 24 | Markieren 25 | Farbe 26 | Anpassungsmodus wird beendet 27 | Mehr 28 | Nein 29 | Keine weiteren Treffer 30 | Die Freigabe des Speichermediums für einen PC kann es unzugänglich machen 31 | Speichermedium nicht vorhanden 32 | Kein Text ausgewählt 33 | Nicht unterstützt 34 | Nichts zum Speichern 35 | OK 36 | Inhaltsverzeichnis 37 | [Eine Ebene nach oben] 38 | %1$s %2$s: %3$s 39 | Drucken 40 | Fehler beim Drucken 41 | Speichern 42 | Suchen 43 | Rückwärts suchen 44 | Dokument durchsuchen 45 | Vorwärts suchen 46 | Suche… 47 | Auswählen 48 | Text auswählen 49 | Durchstreichen 50 | Text konnte nicht gefunden werden 51 | Markiere und aktiviere Verknüpfungen 52 | Unterstreichen 53 | Ja 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-el/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Αποδοχή 4 | MuPDF 5 | Ακύρωση 6 | Αδυναμία ανοίγματος buffer 7 | Αδυναμία ανοίγματος εγγράφου 8 | Αδυναμία ανοίγματος εγγράφου: %1$s 9 | Αδυναμία ανοίγματος αρχείου: %1$s 10 | Επιλογή τιμής 11 | Αντιγράφηκε στο πρόχειρο 12 | Αντιγραφή 13 | αντιγραφή κειμένου 14 | Αντιγραφή κειμένου στο πρόχειρο 15 | Διαγραφή 16 | Ματαίωση 17 | Το έγγραφο έχει αλλαγές. Να αποθηκευτούν; 18 | Σχεδίαση σχολίου 19 | Επεξεργασία σχολίων 20 | Πληκτρολογήστε κωδικό πρόσβασης 21 | Είσοδος σε λειτουργία δυναμικής προσαρμογής 22 | Συμπλήρωση πεδίου κειμένου 23 | Αυτή η μορφή δεν υποστηρίζεται τη δεδομένη στιγμή 24 | Επισήμανση 25 | Γραφή 26 | Έξοδος από λειτουργία δυναμικής προσαρμογής 27 | Περισσότερο 28 | Όχι 29 | Δεν βρέθηκαν άλλες εμφανίσεις 30 | Η κοινή χρήση του αποθηκευτικού μέσου με έναν υπολογιστή μπορεί να το καταστήσει μη προσβάσιμο 31 | Δεν υπάρχει αποθηκευτικό μέσο 32 | Δεν έχει επιλεγεί κείμενο 33 | Δεν υποστηρίζεται 34 | Δεν υπάρχει περιεχόμενο για αποθήκευση 35 | ΟΚ 36 | Πίνακας περιεχομένων 37 | [Ένα επίπεδο επάνω] 38 | %1$s %2$s: %3$s 39 | Εκτύπωση 40 | Η εκτύπωση απέτυχε 41 | Αποθήκευση 42 | Αναζήτηση 43 | Αναζήτηση προς τα πίσω 44 | Αναζήτηση εγγράφου 45 | Αναζήτηση προς τα μπροστά 46 | Αναζήτηση&#8230; 47 | Επιλογή 48 | Επιλογή κειμένου 49 | Διακριτή διαγραφή 50 | Δεν βρέθηκε το κείμενο 51 | Επισήμανση και ενεργοποίηση συνδέσεων 52 | Υπογράμμιση 53 | Ναι 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Aceptar 4 | MuPDF 5 | Cancelar 6 | No se puede abrir el búfer 7 | No se puede abrir el documento 8 | No se puede abrir el documento:%1$s 9 | No se puede abrir el archivo: %1$s 10 | Elegir valor 11 | Copiado al portapapeles 12 | Copiar 13 | copiar texto 14 | Copiar texto al portapapeles 15 | Borrar 16 | Ignorar 17 | El documento tiene cambios. ¿Guardar? 18 | Dibujar anotación 19 | Editar anotaicones 20 | Introducir contraseña 21 | Entrando en el modo de redistribución 22 | Rellenar el campo de texto 23 | Formato actualmente no soportado 24 | Resaltar 25 | Tinta 26 | Saliendo del modo de redistribución 27 | Más 28 | No 29 | No se han encontrado más casos 30 | Compartir el medio de almacenamiento con un PC puede hacerlo inaccesible 31 | Medio de almacenimiento no presente 32 | Texto no seleccionado 33 | No aceptado 34 | Nada que guardar 35 | OK 36 | Tabla de contenidos 37 | [Subir un nivel] 38 | %1$s %2$s: %3$s 39 | Imprimir 40 | No se ha imprimido 41 | Guardar 42 | Buscar 43 | Buscar hacia atrás 44 | Buscar documento 45 | Buscar hacia adelante 46 | Buscando&#8230; 47 | Seleccionar 48 | Seleccionar texto 49 | Tachar 50 | Texto no encontrado 51 | Resaltar y activar 52 | Subrayar 53 | 54 | 55 | No ha sido posible abrir el documento 56 | Toque dos veces seguidas donde desee ubicar su firma 57 | Atención 58 | El documento no ha sido firmado.Por favor, toque dos veces seguidas donde desee ubicar su firma. 59 | 60 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-et/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Nõustu 4 | MuPDF 5 | Tühista 6 | Ei saa avada puhvrit 7 | Ei saa avada dokumenti 8 | Ei saa avada dokumenti: %1$s 9 | Ei saa avada faili: %1$s 10 | Vali väärtus 11 | Kopeeritud lõikelauale 12 | Kopeeri 13 | kopeeri tekst 14 | Kopeeri tekst lõikelauale 15 | Kustuta 16 | Lõpeta 17 | Dokumendis on tehtud muudatusi. Kas salvestada need? 18 | Tee marginaal 19 | Redigeeri marginaale 20 | Sisesta salasõna 21 | Sisenen ümberpaigutamise režiimi 22 | Täida tekstiväli 23 | Vormingul puudub hetkel tugi 24 | Tõsta esile 25 | Tint 26 | Lahkun ümberpaigutamise režiimist 27 | Veel 28 | Ei 29 | Ei leitud rohkem juhtumeid 30 | Salvestuskandja jagamine arvutiga võib selle juurdepääsmatuks muuta 31 | Salvestuskandja puudub 32 | Teksti ei ole valitud 33 | Puudub tugi 34 | Ei ole midagi salvestada 35 | OK 36 | Sisukord 37 | [Taseme võrra üles] 38 | %1$s%2$s%3$s 39 | Prindi 40 | Printimine ebaõnnestus 41 | Salvesta 42 | Otsi 43 | Otsi tagasisuunas 44 | Otsi dokumendist 45 | Otsi edasisuunas 46 | Otsin&#8230; 47 | Vali 48 | Vali tekst 49 | Läbikriipsutus 50 | Teksti ei leitud 51 | Tõsta lingid esile ja luba need 52 | Jooni alla 53 | Jah 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-fi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hyväksy 4 | MuPDF 5 | Peruuta 6 | Puskuria ei voi avata 7 | Tiedostoa ei voi avata 8 | Ei voi avata tiedostoa: %1$s 9 | Ei voi avata tiedostoa: %1$s 10 | Valitse arvo 11 | Kopioitu leikepöydälle 12 | Kopioi 13 | kopio teksti 14 | Kopioi teksti leikepöydälle 15 | Poista 16 | Hylkää 17 | Tiedostossa on muutoksia. Haluatko tallentaa muutokset? 18 | Piirrä huomautus 19 | Muokkaa huomautuksia 20 | Anna salasana 21 | Siirrytään takaisinmuuntotilaan 22 | Täytä tekstikenttä 23 | Muotoa ei tällä hetkellä tueta 24 | Korosta 25 | Muste 26 | Poistutaan takaisinmuuntotilasta 27 | Lisää 28 | Ei 29 | Muita esiintymiä ei löydy 30 | Tallennustietovälineen jakaminen tietokoneen kanssa voi estää sen käyttämisen 31 | Tallennustietoväline ei ole käytössä 32 | Ei valittua tekstiä 33 | Ei tuettu 34 | Ei mitään tallennettavaa 35 | OK 36 | Sisällys 37 | [Yksi taso ylöspäin] 38 | %1$s %2$s: %3$s 39 | Tulosta 40 | Tulostus ei onnistunut 41 | Tallenna 42 | Haku 43 | Hae taaksepäin 44 | Hae tiedostosta 45 | Hae eteenpäin 46 | Haetaan &#8230; 47 | Valitse 48 | Valitse teksti 49 | Yliviivaa 50 | Tekstiä ei löydy 51 | Korosta ja ota käyttöön linkit 52 | Alleviivaa 53 | Kyllä 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Accepter 4 | MuPDF 5 | Annuler 6 | Impossible d\'ouvrir le buffer 7 | Impossible d\'ouvrir le document 8 | Impossible d\'ouvrir le document : %1$s 9 | Impossible d\'ouvrir le fichier : %1$s 10 | Choisir la valeur 11 | Copié dans le presse-papier 12 | Copier 13 | copier le texte 14 | Copier le texte sur le presse-papier 15 | Supprimer 16 | Ignorer 17 | Des modifications ont été effectuées au document. Les sauvegarder ? 18 | Dessiner une note 19 | Éditer une note 20 | Introduire le mot de passe 21 | Entrer en mode refusion 22 | Remplir le champ du texte 23 | Format non compatible pour l\'instant 24 | Surligner 25 | Encre 26 | Quitter le mode refusion 27 | Plus 28 | Non 29 | Aucune occurrence trouvée 30 | Sauvegarder le support de stockage avec un PC peut le rendre inaccessible 31 | Support de stockage absent 32 | Aucun texte sélectionné 33 | Non compatible 34 | Rien à sauvegarder 35 | OK 36 | Table des matières 37 | [Niveau supérieur] 38 | %1$s%2$s : %3$s 39 | Imprimer 40 | L\'impression a échoué 41 | Sauvegarder 42 | Rechercher 43 | Rechercher en arrière 44 | Rechercher document 45 | Rechercher en avant 46 | Chercher&#8230 ; 47 | Sélectionner 48 | Sélectionner le texte 49 | Rayer 50 | Texte introuvable 51 | Surligner et autoriser les liens 52 | Souligner 53 | Oui 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | स्वीकार करें 4 | MuPDF 5 | रद्द करें 6 | बफ़र खोल नहीं सके 7 | दस्तावेज़ खोल नहीं सके 8 | दस्तावेज़ नहीं खोल सके: %1$s 9 | फ़ाइल खोल नहीं सके: %1$s 10 | मान चुनें 11 | क्लिपबोर्ड में कॉप कर दिया गया 12 | कॉपी करें 13 | पाठ कॉपी करें 14 | पाठ को क्लिपबोर्ड में कॉपी करें 15 | हटाएँ 16 | खारिज करें 17 | दस्तावेज़ में परिवर्तन हैं। उन्हें सहेजें? 18 | एनोटेशन बनाएँ 19 | एनोटेशनों को संपादित करें 20 | पासवर्ड दर्ज करें 21 | रीफ़्लो मोड में प्रवेश कर रहे हैं 22 | पाठ फ़ील्ड को भरें 23 | इस समय इस फ़ॉर्मेट को समर्थन नहीं प्राप्त है 24 | हाइलाइट करें 25 | स्याही 26 | रीफ़्लो मोड को छोड़ रहे हैं 27 | और भी 28 | नहीं 29 | यह और कहीं नहीं मिला 30 | संग्रह माध्यम को पीसी के साथ साझा करने से उस तक पहुँचना मुश्किल हो सकता है 31 | संग्रह माध्यम मौजूद नहीं है 32 | कोई भी पाठ नहीं चुना गया है 33 | असमर्थित 34 | सहेजने के लिए कुछ नहीं है 35 | ठीक है 36 | विषय सूची 37 | [एक स्तर ऊपर] 38 | %1$s%2$s:%3$s 39 | मुद्रित करें 40 | मुद्रण विफल हुआ 41 | सहेजें 42 | खोजें 43 | पीछे की ओर खोजें 44 | दस्तावेज़ में खोजें 45 | आगे की ओर खोजें 46 | &#8230 को खोज रहे हैं; 47 | चुनें 48 | पाठ चुनें 49 | काटें 50 | पाठ नहीं मिला 51 | लिंकों को हाइलाइट और सक्षम करें 52 | रेखांकित करें 53 | हाँ 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Elfogadás 4 | MuPDF 5 | Mégse 6 | A puffert nem lehet megnyitni 7 | A dokumentumot nem lehet megnyitni 8 | A dokumentumot nem lehet megnyitni: %1$s 9 | A fájlt nem lehet megnyitni: %1$s 10 | Érték kiválasztása 11 | A vágólapra másolva 12 | Másolás 13 | szöveg másolása 14 | Szöveg másolása a vágólapra 15 | Törlés 16 | Bezárás 17 | A dokumentum módosítva lett. Menti a változtatásokat? 18 | Jegyzet rajzolása 19 | Jegyzetek szerkesztése 20 | Jelszó megadása 21 | Belépés az újrarendezési módba 22 | Szövegmező kitöltése 23 | A formátum jelenleg nem támogatott 24 | Kiemelés 25 | Kézírás 26 | Kilépés az újrarendezési módból 27 | Több 28 | Nem 29 | Nincsenek további találatok 30 | Az adathordozó a PC-vel való megosztás esetén elérhetetlenné válhat 31 | Nincs jelen adathordozó 32 | Nincs kijelölt szöveg 33 | Nem támogatott 34 | Nem kell semmit menteni 35 | OK 36 | Tartalomjegyzék 37 | [Egy szinttel feljebb] 38 | %1$s %2$s: %3$s 39 | Nyomtatás 40 | Nyomtatás sikertelen 41 | Mentés 42 | Keresés 43 | Keresés visszafelé 44 | Dokumentum keresése 45 | Keresés előrefelé 46 | Keresés:&#8230; 47 | Kijelölés 48 | Szöveg kijelölése 49 | Áthúzás 50 | Szöveg nem található 51 | Kiemelés és linkek engedélyezése 52 | Aláhúzás 53 | Igen 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-in/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Terima 4 | MuPDF 5 | Batal 6 | Tidak bisa membuka penyangga 7 | Tidak bisa membuka dokumen 8 | Tidak bisa membuka dokumen: %1$s 9 | Tidak bisa membuka berkas: %1$s 10 | Pilih nilai 11 | Disalin ke papan klip 12 | Salin 13 | Salin teks 14 | Salin teks ke papan klip 15 | Hapus 16 | Hilangkan 17 | Dokumen telah berubah. Simpan perubahan? 18 | Gambar anotasi 19 | Sunting anotasi 20 | Masukkan kata sandi 21 | Masuk mode alir-ulang 22 | Isi bidang teks 23 | Format ini tidak didukung 24 | Sorotan 25 | Tinta 26 | Tinggalkan mode alir-ulang 27 | Selengkapnya 28 | Tidak 29 | Tidak ditemukan kejadian lain 30 | Berbagi media penyimpanan dengan PC dapat membuatnya tidak bisa diakses 31 | Media penyimpanan tidak ada 32 | Tidak ada teks yang dipilih 33 | Tidak didukung 34 | Tidak ada yang disimpan 35 | Oke 36 | Daftar Isi 37 | [Naik satu tingkat] 38 | %1$s %2$s: %3$s 39 | Cetak 40 | Pencetakan gagal 41 | Simpan 42 | Cari 43 | Cari mundur 44 | Cari dokumen 45 | Cari maju 46 | Mencari… 47 | Pilih 48 | Pilih teks 49 | Gagal 50 | Teks tidak ditemukan 51 | Sorot dan aktifkan tautan 52 | Garis bawah 53 | Ya 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Accetta 4 | MuPDF 5 | Annulla 6 | Impossibile aprire buffering 7 | Impossibile aprire documento 8 | Impossibile aprire documento: %1$s 9 | Impossibile aprire file: %1$s 10 | Scegli valore 11 | Copiato negli appunti 12 | Copia 13 | copia testo 14 | Copia testo negli appunti 15 | Elimina 16 | Ignora 17 | Il documento contiene modifiche. Salvare? 18 | Disegna annotazione 19 | Modifica annotazione 20 | Inserisci password 21 | Inserimento modalità di adattamento dinamico del contenuto 22 | Riempi il campo di testo 23 | Formato attualmente non supportato 24 | Evidenzia 25 | Inchiostro 26 | Abbandono della modalità di adattamento dinamico del contenuto 27 | Altro 28 | No 29 | Nessun\'altra occorrenza trovata 30 | La condivisione del supporto di archiviazione con un PC può renderlo inaccessibile 31 | Supporto di archiviazione non presente 32 | Nessun testo selezionato 33 | Non supportato 34 | Niente da salvare 35 | Ok 36 | Sommario 37 | [Su di un livello] 38 | %1$s %2$s: %3$s 39 | Stampa 40 | Stampa non riuscita 41 | Salva 42 | Cerca 43 | Cerca indietro 44 | Cerca documento 45 | Cerca avanti 46 | Ricerca... 47 | Seleziona 48 | Seleziona testo 49 | Barrato 50 | Testo non trovato 51 | Evidenzia e abilita link 52 | Sottolinea 53 | 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-iw/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | קבל 4 | MuPDF 5 | בטל 6 | אין אפשרות לפתוח מאגר 7 | אין אפשרות לפתוח מסמך 8 | אין אפשרות לפתוח מסמך: %1$s 9 | אין אפשרות לפתוח קובץ: %1$s 10 | בחר ערך 11 | הועתק ללוח 12 | העתק 13 | העתק טקסט 14 | העתק טקסט ללוח 15 | מחק 16 | התעלם 17 | קיימים שינויים במסמך. לשמור אותם? 18 | רשום ביאור 19 | ערוך ביאורים 20 | הזן סיסמה 21 | כניסה למצב הזרמה מחדש 22 | מלא את שדה הטקסט 23 | תבנית לא נתמכת כעת 24 | הבלטה 25 | דיו 26 | יציאה ממצב הזרמה מחדש 27 | עוד 28 | לא 29 | לא עוד 30 | שיתוף מדיית האחסון עם מחשב עשויה להפוך אותה לבלתי נגישה 31 | מדיית אחסון לא קיימת 32 | לא נבחר טקסט 33 | לא נתמך 34 | אין מה לשמור 35 | בסדר 36 | תוכן העניינים 37 | [למעלה ברמה אחת] 38 | %1$s %2$s: %3$s 39 | הדפס 40 | ההדפסה נכשלה 41 | שמור 42 | חפש 43 | חפש אחורה 44 | חפש במסמך 45 | חפש קדימה 46 | מחפש&#8230; 47 | בחר ערך 48 | בחר טקסט 49 | הדגש 50 | לא נמצא טקסט 51 | הבלט ואפשר קישורים 52 | קו תחתון 53 | כן 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 承諾する 4 | MuPDF 5 | キャンセル 6 | バッファーを開けません 7 | ドキュメントを開けません 8 | 次のドキュメントを開けません:%1$s 9 | 次のファイルを開けません: %1$s 10 | バリューを選択してください 11 | クリップボードにコピーされました 12 | コピー 13 | テキストをコピー 14 | テキストをクリップボードにコピー 15 | 削除 16 | 却下 17 | ドキュメントは変更されました。保存しますか? 18 | 注釈を挿入する 19 | 注釈を編集する 20 | パスワードを入力する 21 | リフローモードを開始する 22 | テキストフィールドに書き込む 23 | このフォーマットは現在サポートされていません 24 | ハイライト 25 | インク 26 | リフローモードを終了する 27 | もっと 28 | いいえ 29 | 他にオカレンスは見つかりませんでした 30 | 記憶媒体をPCとシェアするとアクセスできなくなる可能性があります 31 | 記憶媒体が見つかりません 32 | テキストが選択されていません 33 | サポートされていません 34 | 保存するものがありません 35 | 了解 36 | 目次 37 | [一つ上位のレベル] 38 | %1$s %2$s: %3$s 39 | 印刷 40 | 印刷に失敗しました 41 | 保存 42 | 検索 43 | 逆方向検索 44 | ドキュメントを検索する 45 | 順方向検索 46 | 検索中 47 | 選択 48 | テキストを選択する 49 | 取り消し線を引く 50 | テキストが見つかりません 51 | ハイライトしてリンクを有効にする 52 | 下線を引く 53 | はい 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 수락 4 | MuPDF 5 | 취소 6 | 버퍼 열 수 없음 7 | 문서 열 수 없음 8 | 문서 열 수 없음: %1$s 9 | 파일 열 수 없음: %1$s 10 | 값 선택 11 | 클립보드로 복사됨 12 | 복사 13 | 텍스트 복사 14 | 클립보드로 텍스트 복사 15 | 삭제 16 | 무시 17 | 문서에 변경사항이 있습니다. 저장? 18 | 주석달기 19 | 주석 편집 20 | 패스워드 입력 21 | 리플로우 모드 시작 22 | 텍스트 입력란에 기입하십시오. 23 | 현재 지원되지 않는 포맷 24 | 주요기능 25 | 잉크 26 | 리플로우 모드 해제 27 | 기타 28 | 아니오 29 | 발견된 추가 발생 없음 30 | PC와 스토리지 미디어를 공유하면 액세스할 수 없습니다. 31 | 스토리지 미디어 없음 32 | 선택된 텍스트 없음 33 | 지원 안됨 34 | 저장 대상 없음 35 | 확인 36 | 목차 37 | [레벨 한 단계 상승] 38 | %1$s %2$s: %3$s 39 | 인쇄 40 | 인쇄 실패 41 | 저장 42 | 검색 43 | 뒤로 검색 44 | 문서 검색 45 | 앞으로 검색 46 | 검색 중&#8230; 47 | 선택 48 | 텍스트 선택 49 | 삭제 50 | 발견된 텍스트 없음 51 | 하이라이트 및 링크 활성화 52 | 밑줄 53 | 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-lt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Priimti 4 | „MuPDF“ 5 | Atšaukti 6 | Nepavyksta atverti buferinės atmintinės 7 | Nepavyksta atverti dokumento 8 | Nepavyksta atverti dokumento: %1$s 9 | Nepavyksta atverti failo: %1$s 10 | Pasirinkti vertę 11 | Nukopijuota į iškarpinę 12 | Kopijuoti 13 | kopijuoti tekstą 14 | Kopijuoti tekstą į iškarpinę 15 | Naikinti 16 | Atmesti 17 | Dokumente yra pakeitimų. Ar juos įrašyti? 18 | Braižyti anotaciją 19 | Redaguoti anotacijas 20 | Įvesti slaptažodį 21 | Pereinama į pertvarkymo režimą 22 | Užpildyti teksto lauką 23 | Formatas šiuo metu nedera 24 | Pažymėti 25 | Rašalas 26 | Išeinama iš pertvarkymo režimo 27 | Daugiau 28 | Ne 29 | Daugiau įrašų nerasta 30 | Pabendrinus laikmeną su kompiuteriu, ji gali tapti nebepasiekiama 31 | Laikmenos nėra 32 | Neparinktas tekstas 33 | Nedera 34 | Nėra ką įrašyti 35 | Gerai 36 | Turinys 37 | [Vienu lygiu aukštyn] 38 | %1$s %2$s: %3$s 39 | Spausdinti 40 | Išspausdinti nepavyko 41 | Įrašyti 42 | Ieškoti 43 | Ieškoti atgal 44 | Ieškoti dokumente 45 | Ieškoti pirmyn 46 | Ieškoma&#8230; 47 | Pasirinkti 48 | Pasirinkti tekstą 49 | Išbraukti 50 | Teksto nerasta 51 | Pažymėti ir įjungti nuorodas 52 | Pabraukti 53 | Taip 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ms/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Terima 4 | MuPDF 5 | Batal 6 | Tidak boleh membuka penimbal 7 | Tidak boleh membuka dokumen 8 | Tidak boleh membuka dokumen: %1$s 9 | Tidak boleh membuka fail: %1$s 10 | Pilih nilai 11 | Disalin ke papan klip 12 | Salin 13 | salin teks 14 | Salin teks ke papan klip 15 | Padam 16 | Singkir 17 | Dokumen mempunyai perubahan. Simpankannya? 18 | Lakarkan catatan 19 | Suntingkan catatan 20 | Masukkan kata laluan 21 | Memasuki mod penyusunan semula 22 | Mengisi medan teks 23 | Format buat masa ini tidak disokong 24 | Serlahkan 25 | Dakwat 26 | Meninggalkan mod penyusunan semula 27 | Lagi 28 | Tidak 29 | Tiada kejadian lanjut ditemui 30 | Berkongsi media storan dengan PC boleh menjadikannya tidak dapat dicapai 31 | Media storan tidak wujud 32 | Tiada teks dipilih 33 | Tidak disokong 34 | Tiada apa untuk disimpan 35 | Okey 36 | Jadual Kandungan 37 | [Naik satu tahap] 38 | %1$s %2$s: %3$s 39 | Cetak 40 | Gagal dicetak 41 | Simpan 42 | Carian 43 | Carian ke belakang 44 | Carian dokumen 45 | Carian ke depan 46 | Mencari&#8230; 47 | Pilih 48 | Pilih teks 49 | Mansuhkan 50 | Teks tidak ditemui 51 | Serlahkan dan dayakan pautan 52 | Gariskan 53 | Ya 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Accepteren 4 | MuPDF 5 | Annuleren 6 | Buffer kan niet geopend worden 7 | Document kan niet geopend worden 8 | Document kan niet geopend worden: %1$s 9 | Bestand kan niet geopend worden : %1$s 10 | Kies waarde 11 | Gekopieerd naar klembord 12 | Kopiëren 13 | tekst kopiëren 14 | Tekst kopiëren naar klembord 15 | Verwijderen 16 | Afwijzen 17 | Het document is gewijzigd. Opslaan? 18 | Opmerking tekenen 19 | Opmerkingen bewerken 20 | Voer wachtwoord in 21 | Conversiemodus wordt geopend 22 | Vul het tekstveld in 23 | Formaat wordt momenteel niet ondersteund 24 | Markeren 25 | Inkten 26 | Conversiemodus wordt beëindigd 27 | Meer 28 | Nee 29 | Geen andere resultaten gevonden 30 | Het opslagmedium kan ontoegankelijk worden als het met een pc wordt gedeeld 31 | Geen opslagmedium aanwezig 32 | Geen tekst geselecteerd 33 | Niet ondersteund 34 | Niets om op te slaan 35 | Oké 36 | Inhoudsopgave 37 | [Een niveau hoger] 38 | %1$s %2$s: %3$s 39 | Afdrukken 40 | Afdrukken mislukt 41 | Opslaan 42 | Zoeken 43 | Achterstevoren zoeken 44 | Document doorzoeken 45 | Vooruit zoeken 46 | Aan het zoeken … 47 | Selecteren 48 | Tekst selecteren 49 | Doorhalen 50 | Tekst niet gevonden 51 | Markeren en koppelingen inschakelen 52 | Onderstrepen 53 | Ja 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-no/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Aksepter 4 | MuPDF 5 | Avbryt 6 | Kan ikke åpne buffer 7 | Kan ikke åpne dukumentet 8 | Kan ikke åpne dokumentet: %1$s 9 | Kan ikke åpne filen: %1$s 10 | Velg verdi 11 | Kopiert til utklippstavlen 12 | Kopier 13 | kopier tekst 14 | Kopier teksten til utklippstavlen 15 | Slett 16 | Avvis 17 | Det er endringer i dokumentet. Lagre dem? 18 | Lag merknad 19 | Rediger merknader 20 | Skriv inn passord 21 | Bytter til konverteringsmodus 22 | Fyll ut tekstfeltet 23 | Formatet er ikke støttet for øyeblikket 24 | Uthev 25 | Håndskrift 26 | Går ut av konverteringsmodus 27 | Mer 28 | Nei 29 | Ingen flere hendelser funnet 30 | Deling av lagringsmedia med en PC kan gjøre det utilgjengelig 31 | Lagringsmedia ikke til stede 32 | Ingen tekst er valgt 33 | Ikke støttet 34 | Ingenting å lagre 35 | Ok 36 | Innholdsfortegnelse 37 | [OPP ett nivå] 38 | %1$s%2$s%3$s 39 | Skriv ut 40 | Kunne ikke skrive ut 41 | Lagre 42 | Søk 43 | Søk bakover 44 | Søk i dokument 45 | Søk framover 46 | Søker&#8230; 47 | Velg 48 | Valgt tekst 49 | Gjennomstreking 50 | Teksten ble ikke funnet 51 | Uthev og aktiver koblinger 52 | Understrek 53 | Ja 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Zaakceptuj 4 | MuPDF 5 | Anuluj 6 | Nie można otworzyć bufora 7 | Nie można otworzyć dokumentu 8 | Nie można otworzyć dokumentu: %1$s 9 | Nie można otworzyć pliku: %1$s 10 | Wybierz wartość 11 | Skopiowano do schowka 12 | Kopiuj 13 | kopiuj tekst 14 | Kopiuj tekst do schowka 15 | Usuń 16 | Odrzuć 17 | W dokumencie dokonano zmian. Czy chcesz je zapisać? 18 | Sporządź notatkę 19 | Edytuj notatki 20 | Wprowadź hasło 21 | Włączanie trybu zawijania tekstu 22 | Wypełnij pole tekstowe 23 | Format obecnie nieobsługiwany 24 | Podświetl 25 | Atrament 26 | Wyłączanie trybu zawijania tekstu 27 | Więcej 28 | Nie 29 | Nie znaleziono więcej wystąpień 30 | Współdzielenie nośnika danych z komputerem PC może sprawić, że będzie niedostępny 31 | Nośnik danych niedostępny 32 | Nie wybrano tekstu 33 | Nieobsługiwany 34 | Nie ma nic do zapisania 35 | OK 36 | Spis treści 37 | [W górę o jeden poziom] 38 | %1$s %2$s: %3$s 39 | Drukuj 40 | Drukowanie nieudane 41 | Zapisz 42 | Szukaj 43 | Szukaj z tyłu 44 | Szukaj w dokumencie 45 | Szukaj z przodu 46 | Wyszukiwanie&#8230; 47 | Wybierz 48 | Wybierz tekst 49 | Przekreślenie 50 | Nie znaleziono tekstu 51 | Podświetl i aktywuj linki 52 | Podkreślenie 53 | Tak 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-pt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Aceitar 4 | MuPDF 5 | Cancelar 6 | Não é possível abrir a memória intermédia 7 | Não é possível abrir o documento 8 | Não é possível abrir o documento: %1$s 9 | Não é possível abrir o ficheiro: %1$s 10 | Escolha um valor 11 | Copiado para a área de transferência 12 | Copiar 13 | copiar o texto 14 | Copiar o texto para a área de transferência 15 | Eliminar 16 | Desistir 17 | Há alterações ao documento. Deseja guardá-las? 18 | Adicionar anotação 19 | Editar anotações 20 | Escrever a palavra-passe 21 | A entrar no modo de refluxo 22 | Preencher o campo de texto 23 | Esse formato não é atualmente suportado 24 | Destacar 25 | Tinta 26 | A sair do modo de refluxo 27 | Mais 28 | Não 29 | Não foram encontradas mais ocorrências 30 | Partilhar o dispositivo de armazenamento com um PC poderá torná-lo inacessível 31 | O dispositivo de armazenamento não está presente 32 | Não há texto selecionado 33 | Não suportado 34 | Não há nada para guardar 35 | Okay 36 | Índice 37 | [subir um nível] 38 | %1$s%2$s: %3$s 39 | Imprimir 40 | Falha na Impressão 41 | Guardar 42 | Pesquisar 43 | Pesquisar para trás 44 | Pesquisar no documento 45 | Pesquisar para a frente 46 | A pesquisar&#8230; 47 | Selecionar 48 | Selecionar o texto 49 | Rasurado 50 | Texto não encontrado 51 | Destacar e permitir links 52 | Sublinhado 53 | Sim 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Принять 4 | MuPDF 5 | Отмена 6 | Невозможно открыть буфер 7 | Невозможно открыть документ 8 | Невозможно открыть документ: %1$s 9 | Невозможно открыть файл: %1$s 10 | Выберите значение 11 | Скопировано в буфер 12 | Копировать 13 | копировать текст 14 | Копировать текст в буфер 15 | Удалить 16 | Пропустить 17 | Документ был изменен. Сохранить изменения? 18 | Создать аннтоацию 19 | Редактировать аннотации 20 | Введите пароль 21 | Переход в режим Reflow 22 | Заполните текстовое поле 23 | Формат не поддерживается 24 | Выделить 25 | Чернила 26 | Выход из режима Reflow 27 | Еще 28 | Нет 29 | Других ошибок не зафиксировано 30 | Подключение компьютеров к хранилищу данных может привести к потере доступа к хранилищу 31 | Хранилище данных отсутствует 32 | Текст не выбран 33 | Не поддерживается 34 | Не выбраны файлы для сохранения 35 | ОК 36 | Содержание 37 | [Вверх на один уровень] 38 | %1$s %2$s: %3$s 39 | Печать 40 | Печать не выполнена 41 | Сохранить 42 | Поиск 43 | Искать в предыдущей части документа 44 | Искать в документе 45 | Искать в остальной части документа 46 | Поиск&#8230; 47 | Выбор 48 | Выбрать текст 49 | Зачеркнуть 50 | Текст не найден 51 | Выделить и включить ссылки 52 | Подчеркнуть 53 | Да 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-sk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Prijať 4 | MuPDF 5 | Zrušiť 6 | Buffer sa nedá otvoriť 7 | Dokument sa nedá otvoriť 8 | Nedá sa otvoriť dokument: %1$s 9 | Nedá sa otvoriť súbor: %1$s 10 | Vyberte si hodnotu 11 | Skopírované do vyrovnávacej pamäti 12 | Kopírovať 13 | kopírovať text 14 | Kopírovať text do vyrovnávacej pamäti 15 | Zmazať 16 | Zrušiť 17 | Dokument bol zmený. Uložiť zmeny? 18 | Zostaviť anotáciu 19 | Upraviť anotácie 20 | Zadať heslo 21 | Vstupujem do režimu opätovného nalievania 22 | Vyplniť textové pole 23 | Tento formát momentálne nepodporujem 24 | Zvýrazniť 25 | Atrament 26 | Vystupujem z režimu opätovného nalievania 27 | Viac 28 | Nie 29 | Viac príkladov sa nenašlo 30 | Zdieľanie úložného média s PC môže znemožniť prístup 31 | Nie je tu úložné médium 32 | Žiadny text nie je vybraný 33 | Nepodporované 34 | Niet čo uložiť 35 | Dobre 36 | Obsah 37 | [O úroveň vyššie] 38 | %1$s %2$s: %3$s 39 | Tlačiť 40 | Tlačenie zlyhalo 41 | Uložiť 42 | Hľadať 43 | Hľadať spätne 44 | Hľadať v dokumente 45 | Hľadať dopredu 46 | Hľadám&#8230; 47 | Vybrať 48 | Vybrať text 49 | Preškrtnúť 50 | Text sa nenašiel 51 | Zvýrazniť a zapnúť linky 52 | Podčiarknúť 53 | Áno 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-sv/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Acceptera 4 | MuPDF 5 | Avbryt 6 | Kan inte öppna buffer 7 | Kan inte öppna dokument 8 | Kan inte öppna dokument: %1$s 9 | Kan inte öppna fil: %1$s 10 | Välj värde 11 | Kopierat till klippbordet 12 | Kopiera 13 | kopiera text 14 | Kopiera text till klippbordet 15 | Ta bort 16 | Avfärda 17 | Dokumentet har ändrats. Spara ändringar? 18 | Rita annotation 19 | Ändra annotation 20 | Fyll i lösenord 21 | Aktiverar reflow-läge 22 | Fyll i textfält 23 | Formatat stöds inte för närvarande 24 | Markera 25 | Bläck 26 | Lämnar reflow-läge 27 | Mer 28 | Nej 29 | Inga flera förekomster hittades 30 | Att dela lagringsmediet med en PC kan göra den oåtkomlig 31 | Lagringsmedia finns inte 32 | Ingen text har valts 33 | Stöds ej 34 | Inget att spara 35 | OK 36 | Innehållsförteckning 37 | [Upp en nivå] 38 | %1$s %2$s: %3$s 39 | Skriv ut 40 | Utskrift misslyckades 41 | Spara 42 | Sök 43 | Sök bakåt 44 | Sök dokument 45 | Sök framåt 46 | Letar&#8230; 47 | Välj 48 | Välj text 49 | Stryk 50 | Text hittades ej 51 | Markera och aktivera länkar 52 | Understryk 53 | Ja 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-th/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ยอมรับ 4 | MuPDF 5 | ยกเลิก 6 | ไม่สามารถเปิดบัฟเฟอร์ 7 | ไม่สามารถเปิดเอกสาร 8 | ไม่สามารถเปิดเอกสาร: %1$s 9 | ไม่สามารถเปิดไฟล์: %1$s 10 | เลือกค่า 11 | คัดลอกไปที่คลิปบอร์ดแล้ว 12 | คัดลอก 13 | คัดลอกข้อความ 14 | คัดลอกข้อความไปที่คลิปบอร์ด 15 | ลบ 16 | เลิกใช้ 17 | เอกสารมีการเปลี่ยนแปลง ต้องการบันทึกหรือไม่ 18 | เขียนคำอธิบายประกอบ 19 | แก้ไขคำอธิบายประกอบ 20 | ป้อนรหัสผ่าน 21 | เข้าสู่โหมดเรียงหน้ากระดาษใหม่ 22 | เติมในช่องข้อความ 23 | ไม่รองรับรูปแบบในขณะนี้ 24 | ไฮไลท์ 25 | หมึก 26 | ออกจากโหมดเรียงหน้ากระดาษใหม่ 27 | เพิ่มเติม 28 | ไม่ 29 | ไม่พบเหตุการณ์ที่เกิดขึ้นเพิ่มเติม 30 | การแบ่งปันสื่อจัดเก็บข้อมูลกับพีซีสามารถทำให้สื่อจัดเก็บข้อมูลไม่สามารถเข้าถึงได้ 31 | สื่อเก็บข้อมูลไม่ปรากฏ 32 | ไม่มีข้อความที่เลือก 33 | ไม่รองรับ 34 | ไม่มีอะไรให้บันทึก 35 | ตกลง 36 | สารบัญ 37 | [ขึ้นหนึ่งระดับ] 38 | %1$s %2$s: %3$s 39 | พิมพ์ 40 | พิมพ์ล้มเหลว 41 | บันทึก 42 | ค้นหา 43 | ค้นหาย้อนกลับ 44 | ค้นหาเอกสาร 45 | ค้นหาไปข้างหน้า 46 | กำลังค้นหา&#8230; 47 | เลือก 48 | เลือกข้อความ 49 | ขีดทับ 50 | ไม่พบข้อความ 51 | ไฮไลท์และเปิดใช้งานลิงก์ 52 | ขีดเส้นใต้ 53 | ใช่ 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-tl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tanggapin 4 | MuPDF 5 | Kanselahin 6 | Hindi mabuksan ang buffer 7 | Hindi mabuksan ang dokumento 8 | Hindi mabuksan ang dokumentong: %1$s 9 | Hindi mabuksan ang file na: %1$s 10 | Pumili ng halaga 11 | Kinopya sa clipboard 12 | Kopyahin 13 | kopyahin ang teksto 14 | Kopyahin ang teksto sa clipboard 15 | Alisin 16 | Umalis 17 | May mga pagbabago sa dokumento. I-save ang mga ito? 18 | Gumuhit ng anotasyon 19 | I-edit ang mga anotasyon 20 | Ilagay ang password 21 | Pumapasok sa reflow mode 22 | Punan ang puwang para sa teksto 23 | Ang format ay kasalukuyang hindi gumagana dito 24 | I-highlight 25 | Lagdaan (Ink) 26 | Umaalis sa reflow mode 27 | Higit pa 28 | Hindi 29 | Walang nahanap na karagdagang paglitaw 30 | Ang pagbabahagi ng storage media sa isang PC ay gagawin itong hindi magagamit 31 | Walang storage media 32 | Walang piniling teksto 33 | Hindi gumagana dito 34 | Walang ise-save 35 | Okay 36 | Talaan ng Nilalaman 37 | [Umakyat ng isang antas] 38 | %1$s %2$s: %3$s 39 | I-print 40 | Hindi nai-print 41 | I-save 42 | Maghanap 43 | Maghanap pabalik 44 | Maghanap sa dokumento 45 | Maghanap nang pasulong 46 | Hinahanap ang&#8230; 47 | Piliin 48 | Piliin ang teksto 49 | Guhitan ang teksto (strike-out) 50 | Hindi nahanap ang teksto 51 | I-highlight at paganahin ang mga link 52 | Guhitan 53 | Oo 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-tr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Kabul et 4 | MuPDF 5 | İptal et 6 | Arabellek açılamıyor 7 | Belge açılamıyor 8 | Belge açılamıyor: %1$s 9 | Dosya açılamıyor: %1$s 10 | Değeri seç 11 | Panoya kopyalandı 12 | Kopyala 13 | metni kopyala 14 | Metni panoya kopyala 15 | Sil 16 | Bırak 17 | Belgede değişiklikler var. Kaydetmek istiyor musunuz? 18 | Ek açıklama çiz 19 | Ek açıklamalar düzenle 20 | Şifreyi gir 21 | Yeniden akma moduna giriyor 22 | Metin alanını doldurun 23 | Bu format şu an için desteklenmiyor 24 | Vurgula 25 | Mürekkep 26 | Yeniden akma modundan çıkılıyor 27 | Daha fazla 28 | Hayır 29 | Daha fazla öğe bulunamadı 30 | Depolama ortamının bilgisayar ile paylaşımı onu erişilmez yapabilir 31 | Depolama ortamı bulunmuyor 32 | Seçili metin bulunmuyor 33 | Desteklenmiyor 34 | Kaydedecek bir şey yok 35 | Tamam 36 | İçindekiler Tablosu 37 | [Bir seviye üste çık] 38 | %1$s %2$s: %3$s 39 | Yazdır 40 | Yazdırma başarısız oldu 41 | Kaydet 42 | Ara 43 | Geriye doğru ara 44 | Belge ara 45 | İleriye doğru ara 46 | Aranıyor&#8230; 47 | Seç 48 | Metin seç 49 | Üstünü çiz 50 | Metin bulunamadı 51 | Bağlantıları vurgula ve etkinleştir 52 | Altını çiz 53 | Evet 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 同意 4 | MuPDF 5 | 取消 6 | 未能開啟緩衝 7 | 未能開啟文件 8 | 未能開啟文件: %1$s 9 | 未能開啟檔案%1$s 10 | 選擇數值 11 | 複製至剪貼簿 12 | 複製 13 | 複製文字 14 | 複製文字至剪貼簿 15 | 刪除 16 | 取消 17 | 你需要儲存已編輯的文件嗎? 18 | 繪畫註釋 19 | 編輯註釋 20 | 輸入密碼 21 | 根據螢幕大小顯示 22 | 填寫文字欄 23 | 暫時不支援此格式 24 | 標示重點 25 | 墨水 26 | 不根據螢幕大小顯示 27 | 更多 28 | 沒有 29 | 沒有相符項目 30 | 未能與電腦分享存放裝置 31 | 沒有存放裝置 32 | 沒有選擇文字 33 | 不支援 34 | 沒有資料儲存 35 | 完成 36 | 目錄 37 | [升一級] 38 | %1$s%2$s%3$s 39 | 列印 40 | 列印失敗 41 | 儲存 42 | 搜尋 43 | 往後搜尋 44 | 搜尋文件 45 | 往前搜尋 46 | 搜尋中&#8230; 47 | 選擇 48 | 選擇文字 49 | 刪除線 50 | 未能找到文字 51 | 標示及允許連結 52 | 在下面劃線 53 | 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values-zh/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 接受 4 | MuPDF 5 | 取消 6 | 无法打开缓冲器 7 | 无法打开文档 8 | 无法打开文档: %1$s 9 | 无法打开文件:%1$s 10 | 选择值 11 | 已复制到剪贴板 12 | 复制 13 | 复制文本 14 | 将文本复制到剪贴板 15 | 删除 16 | 解除 17 | 文档已变更,保存变更吗? 18 | 作批注 19 | 编辑批注 20 | 输入密码 21 | 输入重排模式 22 | 填充文本字段 23 | 当前不支持此格式 24 | 高亮 25 | 墨迹 26 | 正在离开重排模式 27 | 更多 28 | 29 | 未发现更多实例。 30 | 存储介质在设备和 PC 上共同使用,会导致该存储介质在设备上无法被访问 31 | 没有存储介质 32 | 未选择文本 33 | 不被支持 34 | 没有要保存的内容 35 | 确定 36 | 目录 37 | [向上一级] 38 | %1$s%2$s:%3$s 39 | 打印 40 | 未能打印 41 | 保存 42 | 搜索 43 | 向后搜索 44 | 搜索文档 45 | 向前搜索 46 | 正在搜索… 47 | 选择 48 | 选择文本 49 | 删除线 50 | 未发现文本 51 | 高亮并启用墨迹 52 | 下划线 53 | 54 | 55 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #404040 4 | #C0000000 5 | #C0202020 6 | #C0202020 7 | #00000000 8 | #FF2572AC 9 | #FFFFFF 10 | #FFFFFF 11 | #000000 12 | #2572AC 13 | #000000 14 | #2572AC 15 | #FFFFFF 16 | 17 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | MuPDF 4 | 1.6 (git build) 5 | Storage media not present 6 | Sharing the storage media with a PC can make it inaccessible 7 | Cancel 8 | Search backwards 9 | Search forwards 10 | Search document 11 | %1$s %2$s: %3$s 12 | Table of Contents 13 | Enter password 14 | Text not found 15 | Searching… 16 | Highlight and enable links 17 | No further occurrences found 18 | Select 19 | Search 20 | Copy 21 | Strike-out 22 | Delete 23 | Highlight 24 | Underline 25 | Edit annotations 26 | Ink 27 | Save 28 | Print 29 | Dismiss 30 | [Up one level] 31 | Yes 32 | No 33 | Entering reflow mode 34 | Leaving reflow mode 35 | Print failed 36 | Select text 37 | Copied to clipboard 38 | No text selected 39 | Draw annotation 40 | Nothing to save 41 | Document has changes. Save them? 42 | Cannot open document 43 | Cannot open document: %1$s 44 | Cannot open file: %1$s 45 | Cannot open buffer 46 | Fill out text field 47 | Okay 48 | Choose value 49 | Not supported 50 | Copy text to the clipboard 51 | More 52 | Accept 53 | copy text 54 | Format currently not supported 55 | Toggle reflow mode 56 | 57 | Unable to open the document 58 | Double-tap where you want to place your signature 59 | Warning 60 | The document has not been signed. Please, double-tap where you want to place your signature 61 | Ok 62 | 63 | -------------------------------------------------------------------------------- /MuPDFDemo/mupdf-android-master/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /MuPDFDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':mupdf-android-master' 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MuPDFDemo-Java 2 | Demo app to show how to use MuPDF Library for Android. 3 | 4 | # Introduction: 5 | MuPDF is a lightweight PDF and XPS viewer for Android and iOS. There are many other libraries that provide PDF support but MuPDF is by far the best that we have used. 6 | 7 | 8 | # Showing PDF: 9 | With this method you can choose how to show the PDF file. 10 | ```ruby 11 | 12 | private void displayPDF(String path) throws Exception { 13 | /*Reading file from URI*/ 14 | byte buffer[] = null; 15 | Uri uri = Uri.parse(path); 16 | try { 17 | InputStream is = getContentResolver().openInputStream(uri); 18 | int len = is.available(); 19 | buffer = new byte[len]; 20 | is.read(buffer, 0, len); 21 | is.close(); 22 | } catch (OutOfMemoryError e) { 23 | System.out.println("Out of memory during buffer reading"); 24 | } catch (Exception e) { 25 | System.out.println("Exception reading from stream: " + e); 26 | try { 27 | Cursor cursor = getContentResolver().query(uri, new String[]{"_data"}, null, null, null); 28 | if (cursor.moveToFirst()) { 29 | String str = cursor.getString(0); 30 | if (str == null) { 31 | } else { 32 | uri = Uri.parse(str); 33 | } 34 | } 35 | } catch (Exception e2) { 36 | System.out.println("Exception in Transformer Prime file manager code: " + e2); 37 | } 38 | } 39 | MuPDFCore core = new MuPDFCore(getApplicationContext(), buffer, null); 40 | MuPDFReaderView mDocView = new MuPDFReaderView(getApplicationContext()); 41 | mDocView.setAdapter(new MuPDFPageAdapter(getApplicationContext(), null, core)); 42 | pdfViewRL.addView(mDocView, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); 43 | 44 | /*Use this if you want to open PDF outside app using MuPDF's own Activity*/ 45 | 46 | /*Intent intent = new Intent(getApplicationContext(), MuPDFActivity.class); 47 | intent.setAction(Intent.ACTION_VIEW); 48 | intent.setData(Uri.parse(path)); 49 | startActivity(intent);*/ 50 | 51 | } 52 | 53 | --------------------------------------------------------------------------------