Konverter Word ke PDF di Android

Word ke PDF adalah salah satu konversi dokumen yang dipraktikkan secara luas dan inilah alasan MS Word menyediakan fitur bawaan untuk menyimpan dokumen Word sebagai PDF. Karena PDF adalah format yang lebih disukai untuk berbagi dokumen atau menyimpannya secara online, kebutuhan konversi Word ke PDF terjadi dalam berbagai skenario. Di sisi lain, ponsel cerdas yang diberdayakan Android telah membuat hidup manusia lebih mudah dengan menempatkan banyak fungsi di dalam ponsel melalui aplikasi. Mengawasi tren ini, dalam artikel ini, saya akan menunjukkan cara mengonversi dokumen Word ke PDF dalam aplikasi Android. Untuk demonstrasi, kami akan membuat aplikasi Word to PDF Converter sederhana untuk Android dalam beberapa langkah yang memiliki fitur berikut.

  • Mengonversi dokumen Word ke PDF
  • Simpan PDF di penyimpanan ponsel
  • Lihat PDF di dalam aplikasi

Perpustakaan Konverter Word ke PDF untuk Android

Untuk mengonversi dokumen MS Word menjadi format PDF, kami akan menggunakan Aspose.Words for Android via Java yang memungkinkan Anda mengonversi dokumen DOC/DOCX ke file PDF dengan mulus menggunakan beberapa baris kode. Anda dapat mengunduh API atau menginstalnya menggunakan konfigurasi Maven.

Langkah-langkah untuk Mengonversi Word ke PDF di Android

Berikut langkah-langkah membuat aplikasi Word to PDF Converter sederhana di Android menggunakan Aspose.Words for Android via Java:

  • Buat proyek baru di Android Studio (atau Eclipse) dan pilih template “Empty Activity”.
buat proyek baru di android studio
  • Konfigurasikan proyek Anda.
Konfigurasi Proyek Android
  • Buka file build.gradle.
perbarui build.gradle di Android studio
  • Tambahkan bagian repositori berikut di build.gradle.
repositories {
    mavenCentral()
    maven { url "https://repository.aspose.com/repo/" }
}
  • Tambahkan entri berikut di bagian dependencies build.gradle.
implementation 'com.google.android.material:material:1.1.0'
implementation 'com.android.support:multidex:2.0.0'
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
compile (group: 'com.aspose', name: 'aspose-words', version: '20.6', classifier: 'android.via.java')
  • Aktifkan multidex dengan menambahkan entri berikut di bagian defaultConfig di build.gradle.
// enable multiDex
multiDexEnabled true
  • File build.gradle lengkap akan terlihat seperti berikut:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.1"

    defaultConfig {
        applicationId "com.example.wordtopdf"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        // aktifkan multiDex
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    mavenCentral()
    maven { url "https://repository.aspose.com/repo/" }
}
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'com.android.support:multidex:2.0.0'
    implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
    compile (group: 'com.aspose', name: 'aspose-words', version: '20.6', classifier: 'android.via.java')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
  • Buka file activitymain.xml.
perbarui tata letak xml
  • Tempelkan skrip berikut untuk tata letak aktivitas utama.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <com.github.barteksc.pdfviewer.PDFView
        android:id="@+id/pdfView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout_editor_absoluteX="-26dp"
        tools:layout_editor_absoluteY="-16dp" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#D3FFFFFF"
        android:textColor="#A3A2A2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteY="39dp" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="408dp"
        android:layout_gravity="bottom|right"
        android:layout_marginEnd="36dp"
        android:layout_marginRight="36dp"
        android:layout_marginBottom="140dp"
        app:backgroundTint="#00BCD4"
        app:layout_anchorGravity="bottom|right|end"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/pdfView"
        app:srcCompat="@android:drawable/stat_sys_upload"
        tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
  • Buka file MainActivity.java.
tambahkan kode konverter kata ke pdf
  • Tempel kode Java berikut di MainActivity.java.
package com.example.wordtopdf;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import com.aspose.words.Document;
import com.aspose.words.License;
import com.github.barteksc.pdfviewer.PDFView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;

import android.os.Environment;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

@TargetApi(Build.VERSION_CODES.FROYO)
public class MainActivity extends AppCompatActivity {

    private static final int PICK_PDF_FILE = 2;
    private final String storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + File.separator;
    private final String outputPDF = storageDir + "Converted_PDF.pdf";
    private TextView textView = null;
    private Uri document = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // menerapkan lisensi jika Anda memiliki lisensi Aspose.Words...
        applyLicense();
        // dapatkan treeview dan atur teksnya
        textView = (TextView) findViewById(R.id.textView);
        textView.setText("Select a Word DOCX file...");
        // tentukan pendengar klik tombol mengambang
        FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.fab);
        myFab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    // buka file Word dari pemilih file dan konversikan ke PDF
                    openaAndConvertFile(null);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    private void openaAndConvertFile(Uri pickerInitialUri) {
        // buat maksud baru untuk membuka dokumen
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        // jenis pantomim untuk dokumen MS Word
        String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
        intent.setType("*/*");
        intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
        // memulai aktivitas
        startActivityForResult(intent, PICK_PDF_FILE);
    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    public void onActivityResult(int requestCode, int resultCode,
                                 Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        if (resultCode == Activity.RESULT_OK) {
            if (intent != null) {
                document = intent.getData();
                // buka dokumen yang dipilih ke dalam aliran Input
                try (InputStream inputStream =
                             getContentResolver().openInputStream(document);) {
                    Document doc = new Document(inputStream);
                    // simpan DOCX sebagai PDF
                    doc.save(outputPDF);
                    // tampilkan lokasi file PDF di roti bakar serta treeview (opsional)
                    Toast.makeText(MainActivity.this, "File saved in: " + outputPDF, Toast.LENGTH_LONG).show();
                    textView.setText("PDF saved at: " + outputPDF);
                    // lihat PDF yang dikonversi
                    viewPDFFile();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                    Toast.makeText(MainActivity.this, "File not found: " + e.getMessage(), Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    e.printStackTrace();
                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        }
    }

    public void viewPDFFile() {
        // memuat PDF ke dalam PDFView
        PDFView pdfView = (PDFView) findViewById(R.id.pdfView);
        pdfView.fromFile(new File(outputPDF)).load();
    }
    public void applyLicense()
    {
        // mengatur lisensi
        License lic= new License();
        InputStream inputStream = getResources().openRawResource(R.raw.license);
        try {
            lic.setLicense(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • Bangun aplikasi dan jalankan di ponsel pintar Android Anda atau perangkat virtual.
  • Izinkan aplikasi ini mengakses penyimpanan dengan masuk ke Pengaturan->Aplikasi->Izin->Pengelola izin->Penyimpanan.
Konverter Word ke PDF Android

Konverter Word ke PDF - Kode Sumber

Unduh kode sumber lengkap aplikasi Word to PDF Converter dari GitHub.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mengonversi Word ke PDF dalam aplikasi Android. Anda dapat mengintegrasikan fungsionalitas serupa di dalam aplikasi Anda sendiri atau meningkatkan konverter ini ke tingkat yang Anda inginkan. Anda dapat mempelajari lebih lanjut tentang Aspose.Words untuk Android melalui Java dari dokumentasi.

Lihat juga