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”.
- Konfigurasikan proyek Anda.
- Buka file build.gradle.
- 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.
- 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.
- 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 - 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.