Le cadre de lecture de PDF Android / le cadre de PDF Android est simple à utiliser, simple et rapide à intégrer un simple lecteur PDF, le cadre AndroidPdfViewer est simple à utiliser.


1. Introduction

En raison de la présentation du projet il y a quelque temps, notre équipe avait initialement prévu de faire le cadre de lecture TXT, mais nous avons trouvé de nombreuses démos et frameworks TXT, et avons constaté que la difficulté était un peu `` milliard '', alors je suis passé à la lecture PDF sans coeur rouge .

ps: la lecture de PDF est vraiment difficile, plus difficile que la lecture de txt, après tout, il existe de nombreux types de formats. Mais peu importe comment github a un grand dieu, il est directement intégré, et nous l'utiliserons directement plus tard. txt est différent. Il y a trop de catégories de traitement. La plupart des projets trouvés sont des projets open source, qui ne sont pas adaptés pour une intégration directe dans leurs propres projets, et certains utilisent également une base de données pour stocker les données traitées. . . . . . Je suis une recrue, je l'admets.

Ce que j'ai apporté cette fois, c'est la simple utilisation du framework AndroidPdfViewer et une partie de mon cœur, j'espère que cela sera utile à tout le monde.

Ne dites pas de bêtises, prenez d'abord une photo pour prouver votre innocence.

Insérez la description de l'image ici

Insérez la description de l'image ici

Insérez la description de l'image ici

		项目地址:https://github.com/barteksc/AndroidPdfViewer

Adresse du projet: https://github.com/barteksc/AndroidPdfViewer

Parce que mon but est simplement d'être simple et pratique, ce qui peut être affiché, et je ne l'ai pas étudié en profondeur, donc je ne peux que vous apporter quelques éclaircissements.

Étapes d'utilisation

Étape 1 Importer le package / importer la référence / ajouter une dépendance

Tout d'abord, vous devez avoir AndroidStudio, et vous créerez un nouveau projet, puis vous pourrez continuer à lire le blog.

Insérez la description de l'image ici

Ajoutez une ligne de code à cet emplacement: le
but est d'importer le package du projet et d'ajouter des dépendances.

    implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'

Étape 2 Modifiez le fichier de mise en page xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">



	下面这个控件才是核心,外面的布局随意,
    <com.github.barteksc.pdfviewer.PDFView
        android:id="@+id/pdfView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>





</LinearLayout>

Étape 3 Traitement du fichier Java

package com.example.pdf3;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.github.barteksc.pdfviewer.PDFView;
import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;



public class MainActivity extends AppCompatActivity {
    
    
    private int  defaultPage=1;
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        PDFView pdfView=findViewById(R.id.pdfView);

		//pdfView.fromAsset(String)  文件的数据源(数据来源 / pdf文件地址)
		//pdfView.fromSource(DocumentSource)
		//pdfView.fromStream(InputStream
		//pdfView.fromBytes(byte[])
		//pdfView.fromFile(File)
		//pdfView.fromUri(Uri)
        pdfView.fromAsset("test.pdf")
//                .pages(0, 2, 1, 3, 3, 3) //限制能显示的页面为那些页,不写的话默认展示所有页面,写的话就只会展示你写的哪些页面,例如这行代码规定了只能展示0,2,1,3,3,3这六页。
                .enableSwipe(true) // 允许使用刷卡阻止更改页面
                .swipeHorizontal(false)//是否水平翻页,默认竖直翻页
                .enableDoubletap(false)//是否可以双击方法页面
                .defaultPage(defaultPage)//打开时候的默认页面,这里是上面我自定义的第一页,建议链接数据库,数据放在数据库里好一些。
                .onPageChange(new OnPageChangeListener() {
    
    //设置翻页监听
                    @Override
                    public void onPageChanged(int page, int pageCount) {
    
    
                        //这里面写当监听器监听到对应改变是的反应
                        //例如展示数据与处理数据。
                        //Toast.makeText(MainActivity.this, page + " / " + pageCount, Toast.LENGTH_SHORT).show();
                    }
                }
                .onDraw(onDrawListener) //允许借鉴的东西当前页面,通常在屏幕中间可见
                .onDrawAll(onDrawListener)//允许在所有页面上分别为每个页面绘制内容。仅针对可见页面调用
                .onLoad(onLoadCompleteListener) // 在文档加载并开始呈现之后.设置加载监听
                .onPageScroll(onPageScrollListener)//设置页面滑动监听
                .onError(onErrorListener)
                .onPageError(onPageErrorListener)
                .onRender(onRenderListener) //首次呈现文档后,首次提交文档后调用。
                //调用轻按一次即可返回true(如果已处理),则返回false以切换滚动柄可见性
                .onTap(onTapListener)
                .onLongPress(onLongPressListener)
                .enableAnnotationRendering(true)//呈现注释(例如注释,颜色或表单)
                .password(null)
                .scrollHandle(null)
                .enableAntialiasing(true)//改善低分辨率屏幕上的渲染
               // dp中页面之间的间距。以限定间隔颜色,组视图背景
                .spacing(0)
                .autoSpacing(false) //添加动态间距以适合在屏幕上在其自己的每一页
                .linkHandler(DefaultLinkHandler)
                .pageFitPolicy(FitPolicy.WIDTH) //模式,以适应视图中的页面
                .fitEachPage(false) //使每个页面适合视图,否则较小页面相对于最大页面缩放。
                .pageSnap(false) //将页面捕捉到屏幕边界
                .pageFling(false) //仅更改单个页面,例如ViewPager
                .nightMode(false) //切换夜间模式
                .enableSwipe(true)///是否允许翻页,默认是允许翻
                .onPageChange(null)//当pdf翻页 / 当阅读页数改变时
                .load();//开始加载pdf文件
    }
}

Vous avez terminé, vous pouvez maintenant commencer à afficher normalement le fichier pdf dans votre projet.
N'oubliez pas de vous donner l'autorisation de lecture du fichier local du projet
N'oubliez pas de vous donner l'autorisation de lecture du fichier local du projet
N'oubliez pas de vous donner l'autorisation de lecture du fichier local du projet

Je suppose que tu aimes

Origine blog.csdn.net/qq_44627608/article/details/111477808
conseillé
Classement