Hallo Semua...
Pada kesempatan kali ini saya mau berbagi bagaimana cara membuat aplikasi PDF sendiri mengggunakan android studio, Pada postingan kemaren saya sudah share cara buat web view, dan sekarang ini saya post bagaimana cara buat aplikasi pdf, dalam pembuatan aplikasi pdf ini implementasionnya hampir sama dengan pembuatan web view, jadi bagi teman teman yang pengen coba bisa langsung simak langkah langkah di bawah ....


Baiklah kita langsung ke inti itinya saja lebih cepatnya teman teman membuat aplikasi pdf sendiri menggunakan android studio

Pertama buat project baru NewProject_Next


Lanjut langkah kedua teman teman di arahkan ke Project Name, Terserah teman teman mengenai project name, jadi teman teman sesuaikan aplikasi yang mau di buat.Lanjut_Next


Lanjut langkah  selanjutnya teman teman diaraahkan untuk memilih Device API 14, jadi untuk teman teman sesuaian device android kalian atau hp yang suport APInya sesuai device hp yang di gukan teman teman.Lanjut_Next


Lanjut langkah selanjutnya teman teman diarahkan ke untuk memilih layout yang akan kita buat untuk tampilan depan aplikasi, jadi sekaran teman teman pilih layout Empty_Activity.Lanjut_Next


Lanjut Finish


Baik langkah selanjutnya teman teman diarahkan ke Activity_main.xml dan MainActivity.java, jadi teman teman yang pertama diarahkan ke activity_main.xml, dimana teman teman ngelayout atau desain tampilan aplikasi pdf android teman teman.
Kenapa harus ada dua saluran sih untuk membuat aplikasi ???

Baik di android itu ketika buat aplikasi atau project baru itu ada dua saluran Activity_main.xml yang sudah di jelaskan di atas, dan saluran yang kedua MainAktivity.java, dan di MainActivity.java ini saluran yang kedua berfungsi untuk logika aplikasi yang teman teman buat, jadi intinya main aktivity proses berjalannya suatu aplikasi yang dibuat.

Teman teman bisa langsung coba saja untuk buat aplikasi pdfnya saya sudah ngasih tutorial full dan source codenya saya sisipkan di bawah, Teman teman bisa copy+paste heheh x3 :D dibawah ok.


Activity_main.xml


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity">

    <Button
        android:id="@+id/openpdf"
        android:text="Open PDF Me"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <com.github.barteksc.pdfviewer.PDFView
        android:id="@+id/pdfView"
        android:background="@drawable/cdr"
        android:layout_below="@+id/openpdf"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>


MainActivity.java
pagname sesuaikan punya teman teman jadi detaill codingannya

//package g.danytux.carapasangiklan;


import android.content.ActivityNotFoundException;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.database.Cursor;

import android.graphics.Color;

import android.net.Uri;

import android.os.Bundle;

import android.provider.OpenableColumns;

import android.support.annotation.NonNull;

import android.support.v4.app.ActivityCompat;

import android.support.v4.content.ContextCompat;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;



import com.github.barteksc.pdfviewer.PDFView;

import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener;

import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;

import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle;

import com.shockwave.pdfium.PdfDocument;



import java.util.List;



public class MainActivity extends AppCompatActivity implements OnPageChangeListener, OnLoadCompleteListener {

    private static final String TAG = MainActivity.class.getSimpleName();



    private final static int REQUEST_CODE = 42;

    public static final int PERMISSION_CODE = 42042;



    public static final String SAMPLE_FILE = "sample.pdf";

    public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE";



    private PDFView pdfView;

    private Button openPdf;

    private Uri uri;

    private Integer pageNumber = 0;

    private String pdfFileName;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



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

        openPdf = (Button) findViewById(R.id.openpdf);



        openPdf.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent fileIntent = new Intent();

                fileIntent.setType("application/pdf")

                        .setAction(Intent.ACTION_GET_CONTENT);



                int permissionCheck = ContextCompat.checkSelfPermission(ebookActivity.this, READ_EXTERNAL_STORAGE);



                if (permissionCheck != PackageManager.PERMISSION_GRANTED) {

                    ActivityCompat.requestPermissions(

                            ebookActivity.this,

                            new String[]{READ_EXTERNAL_STORAGE},

                            PERMISSION_CODE

                    );



                    return;

                }



                startActivityForResult(Intent.createChooser(fileIntent, "SELECT PDF"), REQUEST_CODE);

            }

        });



    }



    void afterViews() {

        pdfView.setBackgroundColor(Color.LTGRAY);

        if (uri != null) {

            displayFromUri(uri);

        } else {

            displayFromAsset(SAMPLE_FILE);

        }

        setTitle(pdfFileName);

    }

    private void displayFromAsset(String assetFileName) {

        pdfFileName = assetFileName;

        pdfView.fromAsset(SAMPLE_FILE)

                .defaultPage(pageNumber)

                .onPageChange(this)

                .enableAnnotationRendering(true)

                .onLoad(this)

                .scrollHandle(new DefaultScrollHandle(this))

                .spacing(10) // in dp

                .load();

    }



    private void displayFromUri(Uri uri) {

        pdfFileName = getFileName(uri);



        pdfView.fromUri(uri)

                .defaultPage(pageNumber)

                .onPageChange(this)

                .enableAnnotationRendering(true)

                .onLoad(this)

                .scrollHandle(new DefaultScrollHandle(this))

                .spacing(10) // in dp

                .load();

    }



    private String getFileName(Uri uri) {

        String result = null;

        if (uri.getScheme().equals("content")) {

            Cursor cursor = getContentResolver().query(uri, null, null, null, null);

            try {

                if (cursor != null && cursor.moveToFirst()) {

                    result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));

                }

            } finally {

                if (cursor != null) {

                    cursor.close();

                }

            }

        }

        if (result == null) {

            result = uri.getLastPathSegment();

        }

        return result;

    }


    @Override

    public void loadComplete(int nbPages) {

        PdfDocument.Meta meta = pdfView.getDocumentMeta();

        Log.e(TAG, "title = " + meta.getTitle());

        Log.e(TAG, "author = " + meta.getAuthor());

        Log.e(TAG, "subject = " + meta.getSubject());

        Log.e(TAG, "keywords = " + meta.getKeywords());

        Log.e(TAG, "creator = " + meta.getCreator());

        Log.e(TAG, "producer = " + meta.getProducer());

        Log.e(TAG, "creationDate = " + meta.getCreationDate());

        Log.e(TAG, "modDate = " + meta.getModDate());



        printBookmarksTree(pdfView.getTableOfContents(), "-");

    }

    private void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) {

        for (PdfDocument.Bookmark b : tree) {



            Log.e(TAG, String.format("%s %s, p %d", sep, b.getTitle(), b.getPageIdx()));



            if (b.hasChildren()) {

                printBookmarksTree(b.getChildren(), sep + "-");

            }

        }

    }



    @Override

    public void onPageChanged(int page, int pageCount) {

        pageNumber = page;

        setTitle(String.format("%s %s / %s", pdfFileName, page + 1, pageCount));

    }



    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {

            uri = data.getData();

            displayFromUri(uri);

        }

    }

}



Gradle 
yang harus kita pertama kali compile di Gradle modul app


 implementation 'com.github.barteksc:android-pdf-viewer:2.7.0'


Manifests



 <uses-permission android:name="android.permission.INTERNET" />  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />




Demo.....







Hanya itu yang saya sampaikan postingan hari ini semoga bermanfaat, akhiron wassalamualaikum....



by.contacpersion 082301067779

Post a Comment

Previous Post Next Post