├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── AndroidPdfViewer.iml ├── README.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── mupdflibrary ├── .gitignore ├── build.gradle ├── library.iml ├── mupdflibrary.iml ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── tekinarslan │ │ └── mupdflibrary │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── artifex │ │ └── mupdfdemo │ │ ├── Annotation.java │ │ ├── ArrayDeque.java │ │ ├── AsyncTask.java │ │ ├── BitmapHolder.java │ │ ├── ChoosePDFActivity.java │ │ ├── ChoosePDFAdapter.java │ │ ├── ChoosePDFItem.java │ │ ├── Deque.java │ │ ├── LinkInfo.java │ │ ├── LinkInfoExternal.java │ │ ├── LinkInfoInternal.java │ │ ├── LinkInfoRemote.java │ │ ├── LinkInfoVisitor.java │ │ ├── MuPDFActivity.java │ │ ├── MuPDFAlert.java │ │ ├── MuPDFAlertInternal.java │ │ ├── MuPDFCore.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 │ │ ├── TextChar.java │ │ ├── TextWord.java │ │ └── WidgetType.java │ ├── jniLibs │ ├── armeabi-v7a │ │ └── libmupdf.so │ └── x86 │ │ └── libmupdf.so │ └── res │ ├── animator │ └── info.xml │ ├── drawable-hdpi │ ├── ic_launcher.png │ └── 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_launcher.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 │ ├── ic_launcher.png │ └── icon.png │ ├── drawable-xxhdpi │ └── ic_launcher.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 ├── sample ├── .gitignore ├── build.gradle ├── proguard-rules.pro ├── sample.iml └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── tekinarslan │ │ └── sample │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── tekinarslan │ │ └── sample │ │ ├── PdfFragment.java │ │ └── SampleActivity.java │ └── res │ ├── drawable-hdpi │ └── logo.png │ ├── drawable-mdpi │ └── logo.png │ ├── drawable-xhdpi │ └── logo.png │ ├── drawable-xxhdpi │ └── logo.png │ ├── layout │ ├── main.xml │ └── pdf.xml │ ├── menu │ └── main.xml │ └── values │ ├── strings.xml │ └── styles.xml └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | AndroidPdfViewer -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /.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 | 47 | 48 | 49 | 50 | 1.7 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /AndroidPdfViewer.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | AndroidPdfViewer -- PROJECT IS NOT SUPPORTED 2 | =============== 3 | [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-AndroidPdfViewer-brightgreen.svg?style=flat)](https://android-arsenal.com/details/3/1124) 4 | 5 | 6 | Simple and Smooth Pdfviewer for Android applications. 7 | This project use copy of mupdf as library module. 8 | 9 | 10 | USAGE 11 | 12 | *Import project into Android Studio. 13 | 14 | *Project has two modules 15 | 16 | -Mupdflibrary 17 | -Sample 18 | 19 | *Sample application using fragmentation with actionbar. 20 | 21 | *Run Sample on device. 22 | 23 | ![alt tag](http://www.stdroid.com/img/screenshot.png) 24 | 25 | LIBRARY LICENSE 26 | 27 | MuPDF is Copyright 2006-2014 Artifex Software, Inc. 28 | 29 | This program is free software: you can redistribute it and/or modify it under 30 | the terms of the GNU Affero General Public License as published by the Free 31 | Software Foundation, either version 3 of the License, or (at your option) any 32 | later version. 33 | 34 | This program is distributed in the hope that it will be useful, but WITHOUT ANY 35 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 36 | PARTICULAR PURPOSE. See the GNU General Public License for more details. 37 | 38 | You should have received a copy of the GNU Affero General Public License along 39 | with this program. If not, see . 40 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 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 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Nov 27 20:57:41 EET 2014 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-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /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 | # For Cygwin, ensure paths are in UNIX format before anything is touched. 46 | if $cygwin ; then 47 | [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48 | fi 49 | 50 | # Attempt to set APP_HOME 51 | # Resolve links: $0 may be a link 52 | PRG="$0" 53 | # Need this for relative symlinks. 54 | while [ -h "$PRG" ] ; do 55 | ls=`ls -ld "$PRG"` 56 | link=`expr "$ls" : '.*-> \(.*\)$'` 57 | if expr "$link" : '/.*' > /dev/null; then 58 | PRG="$link" 59 | else 60 | PRG=`dirname "$PRG"`"/$link" 61 | fi 62 | done 63 | SAVED="`pwd`" 64 | cd "`dirname \"$PRG\"`/" >&- 65 | APP_HOME="`pwd -P`" 66 | cd "$SAVED" >&- 67 | 68 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 69 | 70 | # Determine the Java command to use to start the JVM. 71 | if [ -n "$JAVA_HOME" ] ; then 72 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 73 | # IBM's JDK on AIX uses strange locations for the executables 74 | JAVACMD="$JAVA_HOME/jre/sh/java" 75 | else 76 | JAVACMD="$JAVA_HOME/bin/java" 77 | fi 78 | if [ ! -x "$JAVACMD" ] ; then 79 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 80 | 81 | Please set the JAVA_HOME variable in your environment to match the 82 | location of your Java installation." 83 | fi 84 | else 85 | JAVACMD="java" 86 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 87 | 88 | Please set the JAVA_HOME variable in your environment to match the 89 | location of your Java installation." 90 | fi 91 | 92 | # Increase the maximum file descriptors if we can. 93 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 94 | MAX_FD_LIMIT=`ulimit -H -n` 95 | if [ $? -eq 0 ] ; then 96 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 97 | MAX_FD="$MAX_FD_LIMIT" 98 | fi 99 | ulimit -n $MAX_FD 100 | if [ $? -ne 0 ] ; then 101 | warn "Could not set maximum file descriptor limit: $MAX_FD" 102 | fi 103 | else 104 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 105 | fi 106 | fi 107 | 108 | # For Darwin, add options to specify how the application appears in the dock 109 | if $darwin; then 110 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 111 | fi 112 | 113 | # For Cygwin, switch paths to Windows format before running java 114 | if $cygwin ; then 115 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 116 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 158 | function splitJvmOpts() { 159 | JVM_OPTS=("$@") 160 | } 161 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 162 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163 | 164 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /mupdflibrary/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /mupdflibrary/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | defaultConfig { 7 | minSdkVersion 14 8 | targetSdkVersion 22 9 | versionCode 1 10 | versionName "1.0" 11 | } 12 | buildTypes { 13 | release { 14 | minifyEnabled false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 16 | } 17 | } 18 | } 19 | 20 | dependencies { 21 | compile fileTree(dir: 'libs', include: ['*.jar']) 22 | 23 | } 24 | -------------------------------------------------------------------------------- /mupdflibrary/library.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /mupdflibrary/mupdflibrary.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /mupdflibrary/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 C:\Program Files (x86)\Android\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 | -------------------------------------------------------------------------------- /mupdflibrary/src/androidTest/java/com/tekinarslan/mupdflibrary/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.tekinarslan.mupdflibrary; 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 | } -------------------------------------------------------------------------------- /mupdflibrary/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/java/com/artifex/mupdfdemo/BitmapHolder.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | public class BitmapHolder { 6 | private Bitmap bm; 7 | 8 | public BitmapHolder() { 9 | bm = null; 10 | } 11 | 12 | public synchronized void setBm(Bitmap abm) { 13 | if (bm != null && bm != abm) 14 | bm.recycle(); 15 | bm = abm; 16 | } 17 | 18 | public synchronized void drop() { 19 | bm = null; 20 | } 21 | 22 | public synchronized Bitmap getBm() { 23 | return bm; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/java/com/artifex/mupdfdemo/ChoosePDFAdapter.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.graphics.Color; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.BaseAdapter; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import java.util.LinkedList; 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: 46 | return R.drawable.ic_arrow_up; 47 | case DIR: 48 | return R.drawable.ic_dir; 49 | case DOC: 50 | return R.drawable.ic_doc; 51 | default: 52 | return 0; 53 | } 54 | } 55 | 56 | public View getView(int position, View convertView, ViewGroup parent) { 57 | View v; 58 | if (convertView == null) { 59 | v = mInflater.inflate(R.layout.picker_entry, null); 60 | } else { 61 | v = convertView; 62 | } 63 | ChoosePDFItem item = mItems.get(position); 64 | ((TextView) v.findViewById(R.id.name)).setText(item.name); 65 | ((ImageView) v.findViewById(R.id.icon)).setImageResource(iconForType(item.type)); 66 | ((ImageView) v.findViewById(R.id.icon)).setColorFilter(Color.argb(255, 0, 0, 0)); 67 | return v; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | 6 | public abstract void visitExternal(LinkInfoExternal li); 7 | 8 | public abstract void visitRemote(LinkInfoRemote li); 9 | } 10 | -------------------------------------------------------------------------------- /mupdflibrary/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 | 6 | ; 7 | 8 | public enum ButtonPressed {NONE, OK, CANCEL, NO, YES} 9 | 10 | ; 11 | 12 | public enum ButtonGroupType {OK, OK_CANCEL, YES_NO, YES_NO_CANCEL} 13 | 14 | ; 15 | 16 | public final String message; 17 | public final IconType iconType; 18 | public final ButtonGroupType buttonGroupType; 19 | public final String title; 20 | public ButtonPressed buttonPressed; 21 | 22 | MuPDFAlert(String aMessage, IconType aIconType, ButtonGroupType aButtonGroupType, String aTitle, ButtonPressed aButtonPressed) { 23 | message = aMessage; 24 | iconType = aIconType; 25 | buttonGroupType = aButtonGroupType; 26 | title = aTitle; 27 | buttonPressed = aButtonPressed; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | public class MuPDFPageAdapter extends BaseAdapter { 12 | private final Context mContext; 13 | private final MuPDFCore mCore; 14 | private final SparseArray mPageSizes = new SparseArray<>(); 15 | 16 | public MuPDFPageAdapter(Context c, MuPDFCore core) { 17 | mContext = c; 18 | mCore = core; 19 | } 20 | 21 | public int getCount() { 22 | return mCore.countPages(); 23 | } 24 | 25 | public Object getItem(int position) { 26 | return null; 27 | } 28 | 29 | public long getItemId(int position) { 30 | return 0; 31 | } 32 | 33 | public View getView(final int position, View convertView, ViewGroup parent) { 34 | final MuPDFPageView pageView; 35 | if (convertView == null) { 36 | pageView = new MuPDFPageView(mContext, mCore, new Point(parent.getWidth(), parent.getHeight())); 37 | } else { 38 | pageView = (MuPDFPageView) convertView; 39 | } 40 | 41 | PointF pageSize = mPageSizes.get(position); 42 | if (pageSize != null) { 43 | // We already know the page size. Set it up 44 | // immediately 45 | pageView.setPage(position, pageSize); 46 | } else { 47 | // Page size as yet unknown. Blank it for now, and 48 | // start a background task to find the size 49 | pageView.blank(position); 50 | AsyncTask sizingTask = new AsyncTask() { 51 | @Override 52 | protected PointF doInBackground(Void... arg0) { 53 | return mCore.getPageSize(position); 54 | } 55 | 56 | @Override 57 | protected void onPostExecute(PointF result) { 58 | super.onPostExecute(result); 59 | // We now know the page size 60 | mPageSizes.put(position, result); 61 | // Check that this view hasn't been reused for 62 | // another page since we started 63 | if (pageView.getPage() == position) 64 | pageView.setPage(position, result); 65 | } 66 | }; 67 | 68 | sizingTask.execute((Void) null); 69 | } 70 | return pageView; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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.webkit.WebView; 11 | import android.webkit.WebViewClient; 12 | 13 | public class MuPDFReflowView extends WebView implements MuPDFView { 14 | private final MuPDFCore mCore; 15 | private final Handler mHandler; 16 | private final Point mParentSize; 17 | private int mPage; 18 | private int mContentHeight; 19 | AsyncTask mLoadHTML; 20 | 21 | public MuPDFReflowView(Context c, MuPDFCore core, Point parentSize) { 22 | super(c); 23 | mHandler = new Handler(); 24 | mCore = core; 25 | mParentSize = parentSize; 26 | mContentHeight = parentSize.y; 27 | getSettings().setJavaScriptEnabled(true); 28 | addJavascriptInterface(new Object() { 29 | public void reportContentHeight(String value) { 30 | mContentHeight = (int) Float.parseFloat(value); 31 | mHandler.post(new Runnable() { 32 | public void run() { 33 | requestLayout(); 34 | } 35 | }); 36 | } 37 | }, "HTMLOUT"); 38 | setWebViewClient(new WebViewClient() { 39 | @Override 40 | public void onPageFinished(WebView view, String url) { 41 | requestHeight(); 42 | } 43 | }); 44 | } 45 | 46 | private void requestHeight() { 47 | // Get the webview to report the content height via the interface setup 48 | // above. Workaround for getContentHeight not working 49 | loadUrl("javascript:elem=document.getElementById('content');window.HTMLOUT.reportContentHeight(" + mParentSize.x + "*elem.offsetHeight/elem.offsetWidth)"); 50 | } 51 | 52 | public void setPage(int page, PointF size) { 53 | mPage = page; 54 | if (mLoadHTML != null) { 55 | mLoadHTML.cancel(true); 56 | } 57 | mLoadHTML = new AsyncTask() { 58 | @Override 59 | protected byte[] doInBackground(Void... params) { 60 | return mCore.html(mPage); 61 | } 62 | 63 | @Override 64 | protected void onPostExecute(byte[] result) { 65 | String b64 = Base64.encodeToString(result, Base64.DEFAULT); 66 | loadData(b64, "text/html; charset=utf-8", "base64"); 67 | } 68 | }; 69 | mLoadHTML.execute(); 70 | } 71 | 72 | public int getPage() { 73 | return mPage; 74 | } 75 | 76 | public void setScale(float scale) { 77 | loadUrl("javascript:document.getElementById('content').style.zoom=\"" + (int) (scale * 100) + "%\""); 78 | requestHeight(); 79 | } 80 | 81 | public void blank(int page) { 82 | } 83 | 84 | public Hit passClickEvent(float x, float y) { 85 | return Hit.NOTHING; 86 | } 87 | 88 | public LinkInfo hitLink(float x, float y) { 89 | return null; 90 | } 91 | 92 | public void selectText(float x0, float y0, float x1, float y1) { 93 | } 94 | 95 | public void deselectText() { 96 | } 97 | 98 | public boolean copySelection() { 99 | return false; 100 | } 101 | 102 | public boolean markupSelection(Annotation.Type type) { 103 | return false; 104 | } 105 | 106 | public void startDraw(float x, float y) { 107 | } 108 | 109 | public void continueDraw(float x, float y) { 110 | } 111 | 112 | public void cancelDraw() { 113 | } 114 | 115 | public boolean saveDraw() { 116 | return false; 117 | } 118 | 119 | public void setSearchBoxes(RectF[] searchBoxes) { 120 | } 121 | 122 | public void setLinkHighlighting(boolean f) { 123 | } 124 | 125 | public void deleteSelectedAnnotation() { 126 | } 127 | 128 | public void deselectAnnotation() { 129 | } 130 | 131 | public void setChangeReporter(Runnable reporter) { 132 | } 133 | 134 | public void update() { 135 | } 136 | 137 | public void addHq(boolean update) { 138 | } 139 | 140 | public void removeHq() { 141 | } 142 | 143 | public void releaseResources() { 144 | if (mLoadHTML != null) { 145 | mLoadHTML.cancel(true); 146 | mLoadHTML = null; 147 | } 148 | } 149 | 150 | @Override 151 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 152 | int x, y; 153 | switch (MeasureSpec.getMode(widthMeasureSpec)) { 154 | case MeasureSpec.UNSPECIFIED: 155 | x = mParentSize.x; 156 | break; 157 | default: 158 | x = MeasureSpec.getSize(widthMeasureSpec); 159 | } 160 | switch (MeasureSpec.getMode(heightMeasureSpec)) { 161 | case MeasureSpec.UNSPECIFIED: 162 | y = mContentHeight; 163 | break; 164 | default: 165 | y = MeasureSpec.getSize(heightMeasureSpec); 166 | } 167 | 168 | setMeasuredDimension(x, y); 169 | } 170 | 171 | @Override 172 | public boolean onTouchEvent(MotionEvent ev) { 173 | // TODO Auto-generated method stub 174 | return false; 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /mupdflibrary/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 | 11 | public void setScale(float scale); 12 | 13 | public int getPage(); 14 | 15 | public void blank(int page); 16 | 17 | public Hit passClickEvent(float x, float y); 18 | 19 | public LinkInfo hitLink(float x, float y); 20 | 21 | public void selectText(float x0, float y0, float x1, float y1); 22 | 23 | public void deselectText(); 24 | 25 | public boolean copySelection(); 26 | 27 | public boolean markupSelection(Annotation.Type type); 28 | 29 | public void deleteSelectedAnnotation(); 30 | 31 | public void setSearchBoxes(RectF[] searchBoxes); 32 | 33 | public void setLinkHighlighting(boolean f); 34 | 35 | public void deselectAnnotation(); 36 | 37 | public void startDraw(float x, float y); 38 | 39 | public void continueDraw(float x, float y); 40 | 41 | public void cancelDraw(); 42 | 43 | public boolean saveDraw(); 44 | 45 | public void setChangeReporter(Runnable reporter); 46 | 47 | public void update(); 48 | 49 | public void addHq(boolean update); 50 | 51 | public void removeHq(); 52 | 53 | public void releaseResources(); 54 | } 55 | -------------------------------------------------------------------------------- /mupdflibrary/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 | /** 12 | * Called when the activity is first created. 13 | */ 14 | @Override 15 | public void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | 18 | mItems = OutlineActivityData.get().items; 19 | setListAdapter(new OutlineAdapter(getLayoutInflater(), mItems)); 20 | // Restore the position within the list from last viewing 21 | getListView().setSelection(OutlineActivityData.get().position); 22 | getListView().setDividerHeight(0); 23 | setResult(-1); 24 | } 25 | 26 | @Override 27 | protected void onListItemClick(ListView l, View v, int position, long id) { 28 | super.onListItemClick(l, v, position, id); 29 | OutlineActivityData.get().position = getListView().getFirstVisiblePosition(); 30 | setResult(mItems[position].page); 31 | finish(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | 13 | public OutlineAdapter(LayoutInflater inflater, OutlineItem[] items) { 14 | mInflater = inflater; 15 | mItems = items; 16 | } 17 | 18 | public int getCount() { 19 | return mItems.length; 20 | } 21 | 22 | public Object getItem(int arg0) { 23 | return null; 24 | } 25 | 26 | public long getItemId(int arg0) { 27 | return 0; 28 | } 29 | 30 | public View getView(int position, View convertView, ViewGroup parent) { 31 | View v; 32 | if (convertView == null) { 33 | v = mInflater.inflate(R.layout.outline_entry, null); 34 | } else { 35 | v = convertView; 36 | } 37 | int level = mItems[position].level; 38 | if (level > 8) level = 8; 39 | String space = ""; 40 | for (int i = 0; i < level; i++) 41 | space += " "; 42 | ((TextView) v.findViewById(R.id.title)).setText(space + mItems[position].title); 43 | ((TextView) v.findViewById(R.id.page)).setText(String.valueOf(mItems[position].page + 1)); 44 | return v; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/java/com/artifex/mupdfdemo/OutlineItem.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | public class OutlineItem { 4 | public final int level; 5 | public final String title; 6 | public final int page; 7 | 8 | OutlineItem(int _level, String _title, int _page) { 9 | level = _level; 10 | title = _title; 11 | page = _page; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/java/com/artifex/mupdfdemo/PrintDialogActivity.java: -------------------------------------------------------------------------------- 1 | package com.artifex.mupdfdemo; 2 | 3 | import android.app.Activity; 4 | import android.content.ActivityNotFoundException; 5 | import android.content.ContentResolver; 6 | import android.content.Intent; 7 | import android.os.Bundle; 8 | import android.util.Base64; 9 | import android.webkit.WebSettings; 10 | import android.webkit.WebView; 11 | import android.webkit.WebViewClient; 12 | 13 | import java.io.ByteArrayOutputStream; 14 | import java.io.InputStream; 15 | 16 | public class PrintDialogActivity extends Activity { 17 | private static final String PRINT_DIALOG_URL = "https://www.google.com/cloudprint/dialog.html"; 18 | private static final String JS_INTERFACE = "AndroidPrintDialog"; 19 | private static final String CONTENT_TRANSFER_ENCODING = "base64"; 20 | 21 | private static final String ZXING_URL = "http://zxing.appspot.com"; 22 | private static final int ZXING_SCAN_REQUEST = 65743; 23 | 24 | /** 25 | * Post message that is sent by Print Dialog web page when the printing dialog 26 | * needs to be closed. 27 | */ 28 | private static final String CLOSE_POST_MESSAGE_NAME = "cp-dialog-on-close"; 29 | 30 | /** 31 | * Web view element to show the printing dialog in. 32 | */ 33 | private WebView dialogWebView; 34 | 35 | /** 36 | * Intent that started the action. 37 | */ 38 | Intent cloudPrintIntent; 39 | 40 | private int resultCode; 41 | 42 | @Override 43 | public void onCreate(Bundle icicle) { 44 | super.onCreate(icicle); 45 | 46 | resultCode = RESULT_OK; 47 | setContentView(R.layout.print_dialog); 48 | dialogWebView = (WebView) findViewById(R.id.webview); 49 | cloudPrintIntent = this.getIntent(); 50 | 51 | WebSettings settings = dialogWebView.getSettings(); 52 | settings.setJavaScriptEnabled(true); 53 | 54 | dialogWebView.setWebViewClient(new PrintDialogWebClient()); 55 | dialogWebView.addJavascriptInterface( 56 | new PrintDialogJavaScriptInterface(), JS_INTERFACE); 57 | 58 | dialogWebView.loadUrl(PRINT_DIALOG_URL); 59 | } 60 | 61 | @Override 62 | public void onActivityResult(int requestCode, int resultCode, Intent intent) { 63 | if (requestCode == ZXING_SCAN_REQUEST && resultCode == RESULT_OK) { 64 | dialogWebView.loadUrl(intent.getStringExtra("SCAN_RESULT")); 65 | } 66 | } 67 | 68 | final class PrintDialogJavaScriptInterface { 69 | public String getType() { 70 | return cloudPrintIntent.getType(); 71 | } 72 | 73 | public String getTitle() { 74 | return cloudPrintIntent.getExtras().getString("title"); 75 | } 76 | 77 | public String getContent() { 78 | try { 79 | ContentResolver contentResolver = getContentResolver(); 80 | InputStream is = contentResolver.openInputStream(cloudPrintIntent.getData()); 81 | ByteArrayOutputStream baos = new ByteArrayOutputStream(); 82 | 83 | byte[] buffer = new byte[4096]; 84 | int n = is.read(buffer); 85 | while (n >= 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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | private View mView; 11 | 12 | public SafeAnimatorInflater(Activity activity, int animation, View view) { 13 | AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(activity, R.animator.info); 14 | mView = view; 15 | set.setTarget(view); 16 | set.addListener(new Animator.AnimatorListener() { 17 | public void onAnimationStart(Animator animation) { 18 | mView.setVisibility(View.VISIBLE); 19 | } 20 | 21 | public void onAnimationRepeat(Animator animation) { 22 | } 23 | 24 | public void onAnimationEnd(Animator animation) { 25 | mView.setVisibility(View.INVISIBLE); 26 | } 27 | 28 | public void onAnimationCancel(Animator animation) { 29 | } 30 | }); 31 | set.start(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /mupdflibrary/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 | private boolean mCancelled = false; 12 | 13 | public ProgressDialogX(Context context) { 14 | super(context); 15 | } 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 | progressDialog.show(); 118 | progressDialog.setProgress(startIndex); 119 | } 120 | } 121 | }, SEARCH_PROGRESS_DELAY); 122 | } 123 | }; 124 | 125 | mSearchTask.execute(); 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | } 9 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/jniLibs/armeabi-v7a/libmupdf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/jniLibs/armeabi-v7a/libmupdf.so -------------------------------------------------------------------------------- /mupdflibrary/src/main/jniLibs/x86/libmupdf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/jniLibs/x86/libmupdf.so -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/animator/info.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 15 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_annot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_annot.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_annotation.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_arrow_left.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_arrow_right.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_cancel.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_check.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_clipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_clipboard.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_dir.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_doc.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_highlight.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_link.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_list.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_magnifying_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_magnifying_glass.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_more.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_pen.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_print.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_reflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_reflow.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_select.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_share.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_strike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_strike.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_trash.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_underline.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/ic_updir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/ic_updir.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_annot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_annot.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_annotation.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_arrow_up.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_cancel.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_check.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_clipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_clipboard.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_dir.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_doc.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_highlight.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_link.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_list.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_magnifying_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_magnifying_glass.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_more.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_pen.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_print.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_reflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_reflow.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_select.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_share.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_strike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_strike.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_trash.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/ic_underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/ic_underline.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/busy.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/darkdenim3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/mupdflibrary/src/main/res/drawable/darkdenim3.png -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/page_num.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/search.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 | 25 | 26 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/seek_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/seek_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/drawable/tiled_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/layout/outline_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 16 | 17 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/layout/picker_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/layout/print_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/layout/textentry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/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 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1.6 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 | -------------------------------------------------------------------------------- /mupdflibrary/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /sample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sample/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | defaultConfig { 7 | applicationId "com.tekinarslan.sample" 8 | minSdkVersion 14 9 | targetSdkVersion 22 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(dir: 'libs', include: ['*.jar']) 23 | compile 'com.android.support:support-v4:22.0.0' 24 | compile project(':mupdflibrary') 25 | } 26 | -------------------------------------------------------------------------------- /sample/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 C:/Program Files (x86)/Android/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 | -------------------------------------------------------------------------------- /sample/src/androidTest/java/com/tekinarslan/sample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.tekinarslan.sample; 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 | } -------------------------------------------------------------------------------- /sample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sample/src/main/java/com/tekinarslan/sample/PdfFragment.java: -------------------------------------------------------------------------------- 1 | package com.tekinarslan.sample; 2 | 3 | import android.app.Fragment; 4 | import android.content.Context; 5 | import android.net.Uri; 6 | import android.os.Bundle; 7 | import android.util.Log; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.RelativeLayout; 12 | 13 | import com.artifex.mupdfdemo.MuPDFCore; 14 | import com.artifex.mupdfdemo.MuPDFPageAdapter; 15 | import com.artifex.mupdfdemo.MuPDFReaderView; 16 | import com.artifex.mupdfdemo.SearchTask; 17 | import com.artifex.mupdfdemo.SearchTaskResult; 18 | 19 | public class PdfFragment extends Fragment { 20 | private RelativeLayout mainLayout; 21 | private MuPDFCore core; 22 | private MuPDFReaderView mDocView; 23 | private Context mContext; 24 | private String mFilePath; 25 | Bundle args = new Bundle(); 26 | private static final String TAG = "PdfFragment"; 27 | private SearchTask mSearchTask; 28 | 29 | public PdfFragment() { 30 | } 31 | 32 | @Override 33 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 34 | Bundle savedInstanceState) { 35 | mContext = getActivity(); 36 | args = this.getArguments(); 37 | mFilePath = args.getString("filepath"); 38 | View rootView = inflater.inflate(R.layout.pdf, container, false); 39 | mainLayout = (RelativeLayout) rootView.findViewById(R.id.pdflayout); 40 | 41 | core = openFile(Uri.decode(mFilePath)); 42 | 43 | if (core != null && core.countPages() == 0) { 44 | core = null; 45 | } 46 | if (core == null || core.countPages() == 0 || core.countPages() == -1) { 47 | Log.e(TAG, "Document Not Opening"); 48 | } 49 | if (core != null) { 50 | mDocView = new MuPDFReaderView(getActivity()) { 51 | @Override 52 | protected void onMoveToChild(int i) { 53 | if (core == null) 54 | return; 55 | super.onMoveToChild(i); 56 | } 57 | 58 | }; 59 | 60 | mDocView.setAdapter(new MuPDFPageAdapter(mContext, core)); 61 | mainLayout.addView(mDocView); 62 | } 63 | 64 | mSearchTask = new SearchTask(mContext, core) { 65 | 66 | @Override 67 | protected void onTextFound(SearchTaskResult result) { 68 | SearchTaskResult.set(result); 69 | mDocView.setDisplayedViewIndex(result.pageNumber); 70 | mDocView.resetupChildren(); 71 | } 72 | }; 73 | 74 | return rootView; 75 | } 76 | 77 | public void search(int direction, String text) { 78 | int displayPage = mDocView.getDisplayedViewIndex(); 79 | SearchTaskResult r = SearchTaskResult.get(); 80 | int searchPage = r != null ? r.pageNumber : -1; 81 | mSearchTask.go(text, direction, displayPage, searchPage); 82 | } 83 | 84 | 85 | private MuPDFCore openBuffer(byte[] buffer) { 86 | System.out.println("Trying to open byte buffer"); 87 | try { 88 | core = new MuPDFCore(mContext, buffer); 89 | 90 | } catch (Exception e) { 91 | Log.e(TAG, e.getMessage()); 92 | return null; 93 | } 94 | return core; 95 | } 96 | 97 | private MuPDFCore openFile(String path) { 98 | int lastSlashPos = path.lastIndexOf('/'); 99 | mFilePath = new String(lastSlashPos == -1 100 | ? path 101 | : path.substring(lastSlashPos + 1)); 102 | try { 103 | core = new MuPDFCore(mContext, path); 104 | // New file: drop the old outline data 105 | } catch (Exception e) { 106 | Log.e(TAG, e.getMessage()); 107 | return null; 108 | } 109 | return core; 110 | } 111 | 112 | public void onDestroy() { 113 | if (core != null) 114 | core.onDestroy(); 115 | core = null; 116 | super.onDestroy(); 117 | } 118 | 119 | @Override 120 | public void onPause() { 121 | super.onPause(); 122 | if (mSearchTask != null) 123 | mSearchTask.stop(); 124 | } 125 | } 126 | 127 | 128 | -------------------------------------------------------------------------------- /sample/src/main/java/com/tekinarslan/sample/SampleActivity.java: -------------------------------------------------------------------------------- 1 | package com.tekinarslan.sample; 2 | 3 | import android.app.Activity; 4 | import android.app.FragmentManager; 5 | import android.app.SearchManager; 6 | import android.content.Context; 7 | import android.os.Bundle; 8 | import android.os.Environment; 9 | import android.view.Menu; 10 | import android.view.MenuInflater; 11 | import android.widget.SearchView; 12 | 13 | import java.io.File; 14 | 15 | /** 16 | * Created by selim_tekinarslan on 10.10.2014. 17 | */ 18 | public class SampleActivity extends Activity { 19 | private static final String TAG = "SampleActivity"; 20 | private static final String SAMPLE_FILE = "sample.pdf"; 21 | private static final String FILE_PATH = "filepath"; 22 | private static final String SEARCH_TEXT = "text"; 23 | private PdfFragment fragment; 24 | private static Context context; 25 | 26 | @Override 27 | protected void onCreate(Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.main); 30 | context = SampleActivity.this; 31 | openPdfWithFragment(); 32 | 33 | } 34 | 35 | 36 | @Override 37 | public boolean onCreateOptionsMenu(Menu menu) { 38 | MenuInflater inflater = getMenuInflater(); 39 | inflater.inflate(R.menu.main, menu); 40 | SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 41 | SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); 42 | searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 43 | SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener() { 44 | @Override 45 | public boolean onQueryTextChange(String newText) { 46 | return true; 47 | } 48 | 49 | @Override 50 | public boolean onQueryTextSubmit(String query)//burada klavyeden ara ya basiyor user 51 | { 52 | fragment.search(1, query); 53 | return true; 54 | } 55 | }; 56 | searchView.setOnQueryTextListener(textChangeListener); 57 | return super.onCreateOptionsMenu(menu); 58 | } 59 | 60 | public void openPdfWithFragment() { 61 | fragment = new PdfFragment(); 62 | Bundle args = new Bundle(); 63 | args.putString(FILE_PATH, Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + SAMPLE_FILE); 64 | fragment.setArguments(args); 65 | FragmentManager fragmentManager = getFragmentManager(); 66 | fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/sample/src/main/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-mdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/sample/src/main/res/drawable-mdpi/logo.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-xhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/sample/src/main/res/drawable-xhdpi/logo.png -------------------------------------------------------------------------------- /sample/src/main/res/drawable-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tekinarslan/AndroidPdfViewer/HEAD/sample/src/main/res/drawable-xxhdpi/logo.png -------------------------------------------------------------------------------- /sample/src/main/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/pdf.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sample/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /sample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | PDF Viewer Sample 3 | 4 | -------------------------------------------------------------------------------- /sample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':sample', ':mupdflibrary' --------------------------------------------------------------------------------