fix links color
This commit is contained in:
weiyixiong 2015-11-17 15:23:58 +08:00
parent 2848d4cb46
commit 0de0c3cd0e
62 changed files with 628 additions and 311 deletions

View File

@ -6,6 +6,7 @@
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="ERROR" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component>
<component name="ChangeListManager">
@ -32,28 +33,24 @@
<file leaf-file-name="PdfViewerActivity.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="666" column="27" selection-start-line="666" selection-start-column="27" selection-end-line="666" selection-end-column="27" />
<folding />
<state vertical-scroll-proportion="-13.777778">
<caret line="173" column="63" selection-start-line="167" selection-start-column="11" selection-end-line="173" selection-end-column="63" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#8315#8671#0" expanded="true" />
<element signature="e#8670#8671#0" expanded="true" />
<element signature="e#9106#9286#0" expanded="true" />
<element signature="e#9285#9286#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PDFPage.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFPage.java">
<file leaf-file-name="Main2Activity.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/java/com/wyx/pdfviewsample/Main2Activity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="55" column="20" selection-start-line="55" selection-start-column="20" selection-end-line="55" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PdfView.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.40854326">
<caret line="215" column="57" selection-start-line="215" selection-start-column="57" selection-end-line="215" selection-end-column="57" />
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@ -61,11 +58,31 @@
</provider>
</entry>
</file>
<file leaf-file-name="PDFImage.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFImage.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.3333335">
<caret line="48" column="28" selection-start-line="48" selection-start-column="26" selection-end-line="48" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PDFParser.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFParser.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.25331125">
<caret line="1404" column="60" selection-start-line="1404" selection-start-column="60" selection-end-line="1404" selection-end-column="60" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="FullScrollView.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/FullScrollView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="692" column="48" selection-start-line="692" selection-start-column="48" selection-end-line="692" selection-end-column="48" />
<caret line="403" column="0" selection-start-line="403" selection-start-column="0" selection-end-line="403" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@ -73,6 +90,55 @@
</provider>
</entry>
</file>
<file leaf-file-name="HardReference.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/refs/HardReference.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="6" column="46" selection-start-line="6" selection-start-column="46" selection-end-line="6" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="activity_main2.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/res/layout/activity_main2.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-7.448276">
<caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PdfView.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-25.333334">
<caret line="65" column="96" selection-start-line="65" selection-start-column="96" selection-end-line="65" selection-end-column="96" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3339#3459#0" expanded="true" />
<element signature="e#3458#3459#0" expanded="true" />
<element signature="e#6127#6236#0" expanded="true" />
<element signature="e#6235#6236#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PDFFile.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFFile.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="1009" column="17" selection-start-line="1009" selection-start-column="17" selection-end-line="1009" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="GradleLocalSettings">
@ -1802,7 +1868,7 @@
<option name="modificationStamps">
<map>
<entry key="$USER_HOME$/Documents/android-musicplayer/android-UniversalMusicPlayer" value="4280354073000" />
<entry key="$PROJECT_DIR$" value="5790666332000" />
<entry key="$PROJECT_DIR$" value="5790948420000" />
</map>
</option>
<option name="projectBuildClasspath">
@ -2208,8 +2274,12 @@
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/GraphView.java" />
<option value="$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java" />
<option value="$PROJECT_DIR$/pdfviewsample/src/main/AndroidManifest.xml" />
<option value="$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerActivity.java" />
<option value="$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java" />
<option value="$PROJECT_DIR$/pdfviewsample/src/main/res/layout/activity_main2.xml" />
<option value="$PROJECT_DIR$/pdfviewsample/src/main/java/com/wyx/pdfviewsample/Main2Activity.java" />
<option value="$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFParser.java" />
</list>
</option>
</component>
@ -2245,6 +2315,8 @@
<sortByType />
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -2267,6 +2339,20 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
@ -2371,6 +2457,32 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pdfviewsample" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="assets" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
@ -2425,36 +2537,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="PdfView" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="resources" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pdfview" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
@ -2533,7 +2615,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="andpdf" />
<option name="myItemId" value="pdfview" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -2563,54 +2645,13 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="andpdf" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pdfviewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Android-Pdf-Viewer-Library" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="PdfView" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="main" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="andpdf" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pdfviewer" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="gui" />
<option name="myItemId" value="tree" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="AndroidView">
<subPane>
<PATH>
@ -2641,9 +2682,6 @@
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@ -2666,8 +2704,39 @@
<property name="recentsLimit" value="5" />
<property name="ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS" value="HC44YWM00097" />
<property name="ANDROID_EXTENDED_DEVICE_CHOOSER_AVD" value="react_native" />
<property name="OverrideImplement.combined" value="true" />
<property name="OverrideImplement.overriding.sorted" value="false" />
</component>
<component name="RunManager" selected="Android Application.pdfviewsample">
<component name="RecentsManager">
<key name="android.template.packageName">
<recent name="com.wyx.pdfviewsample" />
</key>
<key name="android.template.parentActivityClass">
<recent name="" />
</key>
</component>
<component name="RunManager" selected="Android Application.Main2Activity">
<configuration default="false" name="Main2Activity" type="AndroidRunConfigurationType" factoryName="Android Application" temporary="true">
<module name="pdfviewsample" />
<option name="DEPLOY" value="true" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="specific_activity" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="PREFERRED_AVD" value="" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="USE_LAST_SELECTED_DEVICE" value="true" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="com.wyx.pdfviewsample.Main2Activity" />
<method />
</configuration>
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
<module name="" />
<option name="DEPLOY" value="true" />
@ -2810,9 +2879,15 @@
<option name="ACTIVITY_CLASS" value="" />
<method />
</configuration>
<list size="1">
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Android Application.pdfviewsample" />
<item index="1" class="java.lang.String" itemvalue="Android Application.Main2Activity" />
</list>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Android Application.Main2Activity" />
</list>
</recent_temporary>
<configuration name="&lt;template&gt;" type="Applet" default="true" selected="false">
<option name="MAIN_CLASS_NAME" />
<option name="HTML_FILE_NAME" />
@ -2856,36 +2931,37 @@
<frame x="-1920" y="-17" width="1920" height="1057" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Android Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4827586" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Android Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.48246548" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="true" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.18477103" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="CodotaView" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973376" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Android Model" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3995749" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32943678" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32943678" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32837406" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="true" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.18477103" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32837406" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3286004" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32837406" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
<layout-to-restore>
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@ -2895,7 +2971,7 @@
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Android Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.4827586" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Android Monitor" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.48246548" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
@ -2903,18 +2979,19 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24973376" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Android Model" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296146" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3995749" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32943678" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32943678" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3286004" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32837406" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="true" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28061768" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.18477103" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32837406" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
@ -2933,55 +3010,11 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="1" />
<option name="time" value="4" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="666" column="27" selection-start-line="666" selection-start-column="27" selection-end-line="666" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFPage.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="55" column="20" selection-start-line="55" selection-start-column="20" selection-end-line="55" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/FullScrollView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="692" column="48" selection-start-line="692" selection-start-column="48" selection-end-line="692" selection-end-column="48" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="140" column="41" selection-start-line="140" selection-start-column="41" selection-end-line="140" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -3147,6 +3180,12 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="4" column="13" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
<folding>
<element signature="e#535#536#0" expanded="false" />
<element signature="e#552#553#0" expanded="false" />
<element signature="e#576#577#0" expanded="false" />
<element signature="e#593#594#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -3196,6 +3235,7 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
@ -3238,6 +3278,7 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
@ -3408,13 +3449,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/refs/HardReference.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="4" column="13" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/refs/SoftReference.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -3436,6 +3470,38 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/utils/FileUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3519553">
<caret line="20" column="0" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Documents/android-sdk-macosx/sources/android-21/android/view/View.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33333334">
<caret line="3673" column="11" selection-start-line="3673" selection-start-column="11" selection-end-line="3673" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Documents/android-sdk-macosx/sources/android-21/android/view/ViewGroup.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.37254903">
<caret line="490" column="11" selection-start-line="490" selection-start-column="11" selection-end-line="490" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Documents/android-sdk-macosx/sources/android-21/android/widget/FrameLayout.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.37254903">
<caret line="114" column="12" selection-start-line="114" selection-start-column="12" selection-end-line="114" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -3444,59 +3510,176 @@
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Documents/android-sdk-macosx/sources/android-21/android/view/View.java">
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="1619" column="8" selection-start-line="1619" selection-start-column="8" selection-end-line="1619" selection-end-column="8" />
<caret line="13" column="27" selection-start-line="13" selection-start-column="27" selection-end-line="13" selection-end-column="27" />
<folding>
<element signature="e#388802#388803#0" expanded="true" />
<element signature="e#388860#388861#0" expanded="true" />
<element signature="e#220#238#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/java/com/wyx/pdfviewsample/MainActivity.java">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFObject.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/FullScrollView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="692" column="48" selection-start-line="692" selection-start-column="48" selection-end-line="692" selection-end-column="48" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<caret line="52" column="13" selection-start-line="52" selection-start-column="13" selection-end-line="52" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFPage.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.49019608">
<caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/Cache.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.8039216">
<caret line="50" column="48" selection-start-line="50" selection-start-column="48" selection-end-line="50" selection-end-column="48" />
<folding>
<element signature="e#1349#1350#0" expanded="true" />
<element signature="e#1438#1439#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Documents/android-sdk-macosx/sources/android-21/android/app/Activity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33333334">
<caret line="2162" column="16" selection-start-line="2162" selection-start-column="16" selection-end-line="2162" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/sun/pdfview/PDFTextFormat.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.32461873">
<caret line="362" column="9" selection-start-line="362" selection-start-column="9" selection-end-line="362" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/androswing/tree/DefaultMutableTreeNode.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.47058824">
<caret line="12" column="5" selection-start-line="12" selection-start-column="5" selection-end-line="12" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/decode/CCITTFaxDecode.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.9215686">
<caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFFile.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="55" column="20" selection-start-line="55" selection-start-column="20" selection-end-line="55" selection-end-column="20" />
<caret line="1009" column="17" selection-start-line="1009" selection-start-column="17" selection-end-line="1009" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/java/com/wyx/pdfviewsample/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.078431375">
<caret line="8" column="41" selection-start-line="8" selection-start-column="41" selection-end-line="8" selection-end-column="41" />
<folding>
<element signature="e#463#464#0" expanded="true" />
<element signature="e#501#502#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-25.333334">
<caret line="65" column="96" selection-start-line="65" selection-start-column="96" selection-end-line="65" selection-end-column="96" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#3339#3459#0" expanded="true" />
<element signature="e#3458#3459#0" expanded="true" />
<element signature="e#6127#6236#0" expanded="true" />
<element signature="e#6235#6236#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/res/layout/activity_main2.xml">
<provider editor-type-id="android-designer">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-7.448276">
<caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFImage.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.3333335">
<caret line="48" column="28" selection-start-line="48" selection-start-column="26" selection-end-line="48" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-13.777778">
<caret line="173" column="63" selection-start-line="167" selection-start-column="11" selection-end-line="173" selection-end-column="63" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#8315#8671#0" expanded="true" />
<element signature="e#8670#8671#0" expanded="true" />
<element signature="e#9106#9286#0" expanded="true" />
<element signature="e#9285#9286#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/refs/HardReference.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="666" column="27" selection-start-line="666" selection-start-column="27" selection-end-line="666" selection-end-column="27" />
<caret line="6" column="46" selection-start-line="6" selection-start-column="46" selection-end-line="6" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/PdfView.java">
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/net/sf/andpdf/pdfviewer/gui/FullScrollView.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.40854326">
<caret line="215" column="57" selection-start-line="215" selection-start-column="57" selection-end-line="215" selection-end-column="57" />
<state vertical-scroll-proportion="0.0">
<caret line="403" column="0" selection-start-line="403" selection-start-column="0" selection-end-line="403" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pdfviewsample/src/main/java/com/wyx/pdfviewsample/Main2Activity.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/PdfView/src/main/java/com/sun/pdfview/PDFParser.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.25331125">
<caret line="1404" column="60" selection-start-line="1404" selection-start-column="60" selection-end-line="1404" selection-end-column="60" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@ -54,7 +54,9 @@ import com.sun.pdfview.font.PDFFont;
*/
public class PDFParser extends BaseWatchable {
/** emit a file of DCT stream data. */
/**
* emit a file of DCT stream data.
*/
public final static String DEBUG_DCTDECODE_DATA = "debugdctdecode";
static final boolean RELEASE = true;
static final int PDF_CMDS_RANGE1_MIN = 1;
@ -76,11 +78,13 @@ public class PDFParser extends BaseWatchable {
private boolean resend = false;
private Tok tok;
private boolean catchexceptions; // Indicates state of BX...EX
/** a weak reference to the page we render into. For the page
/**
* a weak reference to the page we render into. For the page
* to remain available, some other code must retain a strong reference to it.
*/
private WeakReference pageRef;
/** the actual command, for use within a singe iteration. Note that
/**
* the actual command, for use within a singe iteration. Note that
* this must be released at the end of each iteration to assure the
* page can be collected if not in use
*/
@ -88,7 +92,7 @@ public class PDFParser extends BaseWatchable {
// ---- result variables
byte[] stream;
HashMap<String, PDFObject> resources;
// public static int debuglevel = 4000;
// public static int debuglevel = 4000;
// TODO [FHe]: changed for debugging
public static int debuglevel = -1;
@ -121,7 +125,7 @@ public class PDFParser extends BaseWatchable {
* on to a PDFParser.
*/
public PDFParser(PDFPage cmds, byte[] stream,
HashMap<String, PDFObject> resources) {
HashMap<String, PDFObject> resources) {
super();
this.pageRef = new WeakReference<PDFPage>(cmds);
@ -137,43 +141,76 @@ public class PDFParser extends BaseWatchable {
/////////////////////////////////////////////////////////////////
// B E G I N R E A D E R S E C T I O N
/////////////////////////////////////////////////////////////////
/**
* a token from a PDF Stream
*/
static class Tok {
/** begin bracket &lt; */
/**
* begin bracket &lt;
*/
public static final int BRKB = 11;
/** end bracket &gt; */
/**
* end bracket &gt;
*/
public static final int BRKE = 10;
/** begin array [ */
/**
* begin array [
*/
public static final int ARYB = 9;
/** end array ] */
/**
* end array ]
*/
public static final int ARYE = 8;
/** String (, readString looks for trailing ) */
/**
* String (, readString looks for trailing )
*/
public static final int STR = 7;
/** begin brace { */
/**
* begin brace {
*/
public static final int BRCB = 5;
/** end brace } */
/**
* end brace }
*/
public static final int BRCE = 4;
/** number */
/**
* number
*/
public static final int NUM = 3;
/** keyword */
/**
* keyword
*/
public static final int CMD = 2;
/** name (begins with /) */
/**
* name (begins with /)
*/
public static final int NAME = 1;
/** unknown token */
/**
* unknown token
*/
public static final int UNK = 0;
/** end of stream */
/**
* end of stream
*/
public static final int EOF = -1;
/** the string value of a STR, NAME, or CMD token */
/**
* the string value of a STR, NAME, or CMD token
*/
public String name;
/** the value of a NUM token */
/**
* the value of a NUM token
*/
public double value;
/** the type of the token */
/**
* the type of the token
*/
public int type;
/** a printable representation of the token */
/**
* a printable representation of the token
*/
@Override
public String toString() {
if (type == NUM) {
@ -372,7 +409,7 @@ public class PDFParser extends BaseWatchable {
* character, which has already been read, and end with a balanced ')'
* character. A '\' character starts an escape sequence of up
* to three octal digits.</p>
*
* <p/>
* <p>Parenthesis must be enclosed by a balanced set of parenthesis,
* so a string may enclose balanced parenthesis.</p>
*
@ -384,7 +421,7 @@ public class PDFParser extends BaseWatchable {
int parenLevel = 0;
final StringBuffer sb = new StringBuffer();
for (int to = stream_.length; loc < to;) {
for (int to = stream_.length; loc < to; ) {
int c = stream_[loc++];
if (c == ')') {
if (parenLevel-- == 0) {
@ -425,7 +462,7 @@ public class PDFParser extends BaseWatchable {
* character, which has already been read, and end with a '>'
* character. Each byte in the array is made up of two hex characters,
* the first being the high-order bit.
*
* <p/>
* We translate the byte arrays into char arrays by combining two bytes
* into a character, and then translate the character array into a string.
* [JK FIXME this is probably a really bad idea!]
@ -440,7 +477,7 @@ public class PDFParser extends BaseWatchable {
char w = (char) 0;
// read individual bytes and format into a character array
for (int to = stream_.length; (loc < to) && (stream_[loc] != '>');) {
for (int to = stream_.length; (loc < to) && (stream_[loc] != '>'); ) {
final char c = (char) stream_[loc];
byte b = (byte) 0;
@ -478,6 +515,7 @@ public class PDFParser extends BaseWatchable {
/////////////////////////////////////////////////////////////////
// B E G I N P A R S E R S E C T I O N
/////////////////////////////////////////////////////////////////
/**
* Called to prepare for some iterations
*/
@ -505,16 +543,16 @@ public class PDFParser extends BaseWatchable {
/**
* parse the stream. commands are added to the PDFPage initialized
* in the constructor as they are encountered.
* <p>
* <p/>
* Page numbers in comments refer to the Adobe PDF specification.<br>
* commands are listed in PDF spec 32000-1:2008 in Table A.1
*
* @return <ul><li>Watchable.RUNNING when there are commands to be processed
* <li>Watchable.COMPLETED when the page is done and all
* the commands have been processed
* <li>Watchable.STOPPED if the page we are rendering into is
* no longer available
* </ul>
* <li>Watchable.COMPLETED when the page is done and all
* the commands have been processed
* <li>Watchable.STOPPED if the page we are rendering into is
* no longer available
* </ul>
*/
public int iterate() throws Exception {
// make sure the page is still available, and create the reference
@ -662,7 +700,7 @@ public class PDFParser extends BaseWatchable {
path = new Path();
break;
case 'f':
// the fall-through is intended!
// the fall-through is intended!
case 'F':
// fill the path (close/not close identical)
cmds.addPath(path, PDFShapeCmd.FILL | clip);
@ -952,11 +990,11 @@ public class PDFParser extends BaseWatchable {
break;
case 'Q' + ('q' << 8):
processQCmd();
// 'q'-cmd
// push the parser state
parserStates.push((ParserState) state.clone());
// push graphics state
cmds.addPush();
// 'q'-cmd
// push the parser state
parserStates.push((ParserState) state.clone());
// push graphics state
cmds.addPush();
break;
default:
if (catchexceptions) {
@ -1025,6 +1063,7 @@ public class PDFParser extends BaseWatchable {
path = null;
cmds = null;
}
boolean errorwritten = false;
public void dumpStreamToError() {
@ -1068,10 +1107,12 @@ public class PDFParser extends BaseWatchable {
/////////////////////////////////////////////////////////////////
// H E L P E R S
/////////////////////////////////////////////////////////////////
/**
* get a property from a named dictionary in the resources of this
* content stream.
* @param name the name of the property in the dictionary
*
* @param name the name of the property in the dictionary
* @param inDict the name of the dictionary in the resources
* @return the value of the property in the dictionary
*/
@ -1092,6 +1133,7 @@ public class PDFParser extends BaseWatchable {
* Insert a PDF object into the command stream. The object must
* either be an Image or a Form, which is a set of PDF commands
* in a stream.
*
* @param obj the object to insert, an Image or a Form.
*/
private void doXObject(PDFObject obj) throws IOException {
@ -1111,8 +1153,9 @@ public class PDFParser extends BaseWatchable {
/**
* Parse image data into a Java BufferedImage and add the image
* command to the page.
*
* @param obj contains the image data, and a dictionary describing
* the width, height and color space of the image.
* the width, height and color space of the image.
*/
private void doImage(PDFObject obj) throws IOException {
cmds.addImage(PDFImage.createImage(obj, resources));
@ -1122,8 +1165,9 @@ public class PDFParser extends BaseWatchable {
* Inject a stream of PDF commands onto the page. Optimized to cache
* a parsed stream of commands, so that each Form object only needs
* to be parsed once.
*
* @param obj a stream containing the PDF commands, a transformation
* matrix, bounding box, and resources.
* matrix, bounding box, and resources.
*/
private void doForm(PDFObject obj) throws IOException {
// check to see if we've already parsed this sucker
@ -1186,6 +1230,7 @@ public class PDFParser extends BaseWatchable {
//
// return patternSpace.getPaint(pattern, components, resources);
// }
/**
* Parse the next object out of the PDF stream. This could be a
* Double, a String, a HashMap (dictionary), Object[] array, or
@ -1198,13 +1243,13 @@ public class PDFParser extends BaseWatchable {
case Tok.NUM:
return new Double(tok.value);
case Tok.STR:
// the fall-through is intended!
// the fall-through is intended!
case Tok.NAME:
return tok.name;
case Tok.BRKB: {
final HashMap<String, PDFObject> hm = new HashMap<String, PDFObject>();
String name = null;
for (Object obj = null; (obj = parseObject()) != null;) {
for (Object obj = null; (obj = parseObject()) != null; ) {
if (name == null) {
name = (String) obj;
} else {
@ -1220,7 +1265,7 @@ public class PDFParser extends BaseWatchable {
case Tok.ARYB: {
// build an array
final ArrayList<Object> ary = new ArrayList<Object>();
for (Object obj = null; (obj = parseObject()) != null;) {
for (Object obj = null; (obj = parseObject()) != null; ) {
ary.add(obj);
}
if (tok.type != Tok.ARYE) {
@ -1351,6 +1396,7 @@ public class PDFParser extends BaseWatchable {
/**
* add graphics state commands contained within a dictionary.
*
* @param name the resource name of the graphics state dictionary
*/
private void setGSState(String name) throws IOException {
@ -1408,11 +1454,15 @@ public class PDFParser extends BaseWatchable {
/**
* pop a single float value off the stack.
*
* @return the float value of the top of the stack
* @throws PDFParseException if the value on the top of the stack
* isn't a number
* isn't a number
*/
private float popFloat() throws PDFParseException {
if (stack.isEmpty()) {
return 0;
}
Object obj = stack.pop();
if (obj instanceof Double) {
return ((Double) obj).floatValue();
@ -1425,10 +1475,11 @@ public class PDFParser extends BaseWatchable {
* pop an array of float values off the stack. This is equivalent
* to filling an array from end to front by popping values off the
* stack.
*
* @param count the number of numbers to pop off the stack
* @return an array of length <tt>count</tt>
* @throws PDFParseException if any of the values popped off the
* stack are not numbers.
* stack are not numbers.
*/
private float[] popFloat(int count) throws PDFParseException {
float[] ary = new float[count];
@ -1440,6 +1491,7 @@ public class PDFParser extends BaseWatchable {
/**
* pop a single integer value off the stack.
*
* @return the integer value of the top of the stack
* @throws PDFParseException if the top of the stack isn't a number.
*/
@ -1456,10 +1508,11 @@ public class PDFParser extends BaseWatchable {
* pop an array of integer values off the stack. This is equivalent
* to filling an array from end to front by popping values off the
* stack.
*
* @param count the number of numbers to pop off the stack
* @return an array of length <tt>count</tt>
* @throws PDFParseException if any of the values popped off the
* stack are not numbers.
* stack are not numbers.
*/
private float[] popFloatArray() throws PDFParseException {
Object obj = stack.pop();
@ -1480,9 +1533,10 @@ public class PDFParser extends BaseWatchable {
/**
* pop a String off the stack.
*
* @return the String from the top of the stack
* @throws PDFParseException if the top of the stack is not a NAME
* or STR.
* or STR.
*/
private String popString() throws PDFParseException {
Object obj = stack.pop();
@ -1495,9 +1549,10 @@ public class PDFParser extends BaseWatchable {
/**
* pop a PDFObject off the stack.
*
* @return the PDFObject from the top of the stack
* @throws PDFParseException if the top of the stack does not contain
* a PDFObject.
* a PDFObject.
*/
private PDFObject popObject() throws PDFParseException {
Object obj = stack.pop();
@ -1509,9 +1564,10 @@ public class PDFParser extends BaseWatchable {
/**
* pop an array off the stack
*
* @return the array of objects that is the top element of the stack
* @throws PDFParseException if the top element of the stack does not
* contain an array.
* contain an array.
*/
private Object[] popArray() throws PDFParseException {
Object obj = stack.pop();
@ -1528,11 +1584,17 @@ public class PDFParser extends BaseWatchable {
*/
class ParserState implements Cloneable {
/** the fill color space */
/**
* the fill color space
*/
PDFColorSpace fillCS;
/** the stroke color space */
/**
* the stroke color space
*/
PDFColorSpace strokeCS;
/** the text paramters */
/**
* the text paramters
*/
PDFTextFormat textFormat;
/**

View File

@ -38,6 +38,11 @@ import com.sun.pdfview.decrypt.PDFAuthenticationFailureException;
import com.sun.pdfview.decrypt.PDFPassword;
import com.sun.pdfview.font.PDFFont;
import net.sf.andpdf.nio.ByteBuffer;
import net.sf.andpdf.pdfviewer.gui.FullScrollView;
import net.sf.andpdf.pdfviewer.gui.PdfView;
import net.sf.andpdf.refs.HardReference;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@ -46,11 +51,6 @@ import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import net.sf.andpdf.nio.ByteBuffer;
import net.sf.andpdf.pdfviewer.gui.FullScrollView;
import net.sf.andpdf.pdfviewer.gui.PdfView;
import net.sf.andpdf.refs.HardReference;
/**
* U:\Android\android-sdk-windows-1.5_r1\tools\adb push u:\Android\simple_T.pdf /data/test.pdf
*
@ -117,7 +117,7 @@ public abstract class PdfViewerActivity extends Activity {
* restore member variables from previously saved instance
*
* @return true if instance to restore from was found
* @see onRetainNonConfigurationInstance
* @see
*/
private boolean restoreInstance() {
mOldGraphView = null;
@ -156,7 +156,7 @@ public abstract class PdfViewerActivity extends Activity {
mGraphView.mBi = mOldGraphView.mBi;
mOldGraphView = null;
mGraphView.mImageView.setImageBitmap(mGraphView.mBi);
mGraphView.updateTexts();
// mGraphView.updateTexts();
setContentView(mGraphView);
} else {
mGraphView = new GraphView(this);
@ -220,7 +220,7 @@ public abstract class PdfViewerActivity extends Activity {
private synchronized void startRenderThread(final int page, final float zoom) {
if (backgroundThread != null) return;
mGraphView.showText("reading page " + page + ", zoom:" + zoom);
// mGraphView.showText("reading page " + page + ", zoom:" + zoom);
//progress = ProgressDialog.show(PdfViewerActivity.this, "Loading", "Loading PDF Page");
backgroundThread = new Thread(new Runnable() {
public void run() {
@ -241,13 +241,13 @@ public abstract class PdfViewerActivity extends Activity {
private void updateImageStatus() {
// Log.i(TAG, "updateImageStatus: " + (System.currentTimeMillis()&0xffff));
if (backgroundThread == null) {
mGraphView.updateUi();
// mGraphView.updateUi();
/*if (progress != null)
progress.dismiss();*/
return;
}
mGraphView.updateUi();
// mGraphView.updateUi();
mGraphView.postDelayed(new Runnable() {
public void run() {
updateImageStatus();
@ -464,7 +464,7 @@ public abstract class PdfViewerActivity extends Activity {
LinearLayout.LayoutParams lpWrap10 =
new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
LayoutParams matchLp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
// vertical layout
LinearLayout vl = new LinearLayout(context);
vl.setLayoutParams(lpWrap10);
@ -485,10 +485,11 @@ public abstract class PdfViewerActivity extends Activity {
updateImage();
mImageView.setLayoutParams(lpWrap1);
// mImageView.setPadding(5, 5, 5, 5);
vl.addView(mImageView);
//vl.addView(mImageView);
//TODO
vl.addView(pdfView);
pdfView.setLayoutParams(lpWrap1);
// vl.addView(pdfView);
addView(pdfView);
pdfView.setLayoutParams(matchLp);
/*mImageView = (ImageView) findViewById(R.id.pdf_image);
if (mImageView == null) {
@ -545,7 +546,7 @@ public abstract class PdfViewerActivity extends Activity {
setHorizontalFadingEdgeEnabled(true);
setVerticalScrollBarEnabled(true);
setVerticalFadingEdgeEnabled(true);
addView(vl);
// addView(vl);
}
private void addNavButtons(ViewGroup vg) {
@ -662,19 +663,14 @@ public abstract class PdfViewerActivity extends Activity {
vg.addView(tvSpacer);
}
private void showText(String text) {
Log.i(TAG, "ST='" + text + "'");
//mText = text;
updateUi();
}
private void updateUi() {
uiHandler.post(new Runnable() {
public void run() {
updateTexts();
}
});
}
// private void updateUi() {
// uiHandler.post(new Runnable() {
// public void run() {
// updateTexts();
// }
// });
// }
private void updateImage() {
uiHandler.post(new Runnable() {
@ -707,15 +703,15 @@ public abstract class PdfViewerActivity extends Activity {
}
}
protected void updateTexts() {
if (mPdfPage != null) {
if (mBtPage != null)
mBtPage.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
if (mBtPage2 != null)
mBtPage2.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
}
}
// protected void updateTexts() {
//
// if (mPdfPage != null) {
// if (mBtPage != null)
// mBtPage.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
// if (mBtPage2 != null)
// mBtPage2.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
// }
// }
}
private void showPage(int page, float zoom) throws Exception {
@ -747,7 +743,7 @@ public abstract class PdfViewerActivity extends Activity {
if (progress != null) progress.dismiss();
} catch (Throwable e) {
Log.e(TAG, e.getMessage(), e);
mGraphView.showText("Exception: " + e.getMessage());
// mGraphView.showText("Exception: " + e.getMessage());
}
//long stopTime = System.currentTimeMillis();
//mGraphView.pageParseMillis = middleTime-startTime;
@ -760,16 +756,16 @@ public abstract class PdfViewerActivity extends Activity {
File f = new File(filename);
long len = f.length();
if (len == 0) {
mGraphView.showText("file '" + filename + "' not found");
// mGraphView.showText("file '" + filename + "' not found");
} else {
mGraphView.showText("file '" + filename + "' has " + len + " bytes");
// mGraphView.showText("file '" + filename + "' has " + len + " bytes");
openFile(f, password);
}
} catch (PDFAuthenticationFailureException e) {
throw e;
} catch (Throwable e) {
e.printStackTrace();
mGraphView.showText("Exception: " + e.getMessage());
// mGraphView.showText("Exception: " + e.getMessage());
}
//long stopTime = System.currentTimeMillis();
//mGraphView.fileMillis = stopTime-startTime;
@ -800,7 +796,7 @@ public abstract class PdfViewerActivity extends Activity {
} else {
mPdfFile = new PDFFile(bb, new PDFPassword(password));
}
mGraphView.showText("Anzahl Seiten:" + mPdfFile.getNumPages());
// mGraphView.showText("Anzahl Seiten:" + mPdfFile.getNumPages());
}

View File

@ -5,13 +5,16 @@ import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.RectF;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
import com.sun.pdfview.PDFFile;
import com.sun.pdfview.PDFImage;
import com.sun.pdfview.PDFPage;
import com.sun.pdfview.PDFPaint;
import com.sun.pdfview.decrypt.PDFAuthenticationFailureException;
import com.sun.pdfview.decrypt.PDFPassword;
@ -43,14 +46,23 @@ public class PdfView extends FullScrollView {
private float mZoom;
public PdfView(Context context) {
super(context);
this(context, null);
}
public PdfView(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.scrollViewStyle);
}
public PdfView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
PDFImage.sShowImages = true;
PDFPaint.s_doAntiAlias = true;
uiHandler = new Handler();
LayoutParams matchLp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
LayoutParams matchLp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
mImageView = new ImageView(context);
setPageBitmap(null);
updateImage();
mImageView.setLayoutParams(matchLp);
addView(mImageView);
addView(mImageView, matchLp);
setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
setBackgroundColor(Color.LTGRAY);
setHorizontalScrollBarEnabled(true);
@ -170,7 +182,7 @@ public class PdfView extends FullScrollView {
}
}
private synchronized void startRenderThread(final int page, final float zoom) {
public synchronized void startRenderThread(final int page, final float zoom) {
if (backgroundThread != null) return;
backgroundThread = new Thread(new Runnable() {
public void run() {
@ -199,7 +211,25 @@ public class PdfView extends FullScrollView {
}, 1000);
}
private void parsePDF(String filename, String password) throws PDFAuthenticationFailureException {
public void parsePDF(File f, String password) throws PDFAuthenticationFailureException {
try {
long len = f.length();
if (len == 0) {
toastMessage("file '" + f.getName() + "' not found");
} else {
toastMessage("file '" + f.getName() + "' has " + len + " bytes");
openFile(f, password);
}
} catch (PDFAuthenticationFailureException e) {
throw e;
} catch (Throwable e) {
e.printStackTrace();
toastMessage("Exception: " + e.getMessage());
}
}
public void parsePDF(String filename, String password) throws PDFAuthenticationFailureException {
try {
File f = new File(filename);
long len = f.length();

View File

@ -5,7 +5,7 @@
jar="/Users/winney/git/Android-Pdf-Viewer-Library/pdfviewsample/build/intermediates/exploded-aar/Android-Pdf-Viewer-Library/PdfView/unspecified/jars/classes.jar"
jumboMode="false"
revision="23.0.2"
sha1="8cad678d9043f1f93f2c277b3890e0b109ac9b24">
sha1="933be2f099767838f02cd4a28fc5ac4c219b327f">
<dex dex="/Users/winney/git/Android-Pdf-Viewer-Library/pdfviewsample/build/intermediates/pre-dexed/debug/classes-dbc371ee905b36ce5cd278976d41c35b063e55b0.jar" />
</item>

View File

@ -1,20 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wyx.pdfviewsample"
>
package="com.wyx.pdfviewsample">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity">
</activity>
</application>
</manifest>

View File

@ -0,0 +1,31 @@
package com.wyx.pdfviewsample;
import android.app.Activity;
import android.os.Bundle;
import net.sf.andpdf.pdfviewer.gui.PdfView;
import net.sf.andpdf.utils.FileUtils;
import java.io.IOException;
public class Main2Activity extends Activity {
PdfView pdfView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
pdfView = (PdfView) findViewById(R.id.pdf_view);
try {
pdfView.parsePDF(FileUtils.fileFromAsset(this, "about.pdf"), null);
} catch (IOException e) {
e.printStackTrace();
}
pdfView.startRenderThread(1, 1.0f);
}
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<net.sf.andpdf.pdfviewer.gui.PdfView
android:id="@+id/pdf_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp" />
</LinearLayout>

View File

@ -1,6 +1,6 @@
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>

View File

@ -1,5 +1,5 @@
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>

View File

@ -1,3 +1,3 @@
<resources>
<string name="app_name">PdfViewSample</string>
<string name="app_name">PdfViewSample</string>
</resources>