Word เป็น PDF เป็นหนึ่งในการแปลงเอกสารที่ใช้กันอย่างแพร่หลาย และนี่คือเหตุผลที่ MS Word มีคุณลักษณะในตัวเพื่อบันทึกเอกสาร Word เป็น PDF เนื่องจาก PDF เป็นรูปแบบที่ต้องการสำหรับการแชร์เอกสารหรือเก็บไว้ออนไลน์ ความจำเป็นในการแปลง Word เป็น PDF จึงเกิดขึ้นในหลายๆ สถานการณ์ ในทางกลับกัน สมาร์ทโฟนที่ใช้ระบบ Android ทำให้ชีวิตของมนุษย์ง่ายขึ้นด้วยการเพิ่มฟังก์ชันการทำงานมากมายภายในโทรศัพท์ผ่านแอพ คอยติดตามแนวโน้มเหล่านี้ ในบทความนี้ ฉันจะแสดงวิธีแปลงเอกสาร Word เป็น PDF ภายในแอป Android สำหรับการสาธิต เราจะสร้างแอปแปลง Word เป็น PDF อย่างง่ายสำหรับ Android ภายในไม่กี่ขั้นตอนพร้อมคุณสมบัติต่อไปนี้
- แปลงเอกสาร Word เป็น PDF
- บันทึก PDF ในที่เก็บข้อมูลของโทรศัพท์
- ดู PDF ภายในแอพ
Word เป็น PDF Converter Library สำหรับ Android
สำหรับการแปลงเอกสาร MS Word เป็นรูปแบบ PDF เราจะใช้ Aspose.Words สำหรับ Android ผ่าน Java ที่ให้คุณแปลงเอกสาร DOC/DOCX เป็นไฟล์ PDF ได้อย่างราบรื่นโดยใช้โค้ดสองสามบรรทัด คุณสามารถ ดาวน์โหลด API หรือติดตั้งโดยใช้ การกำหนดค่า Maven
ขั้นตอนในการแปลง Word เป็น PDF ใน Android
ต่อไปนี้เป็นขั้นตอนในการสร้างแอป Word เป็น PDF Converter อย่างง่ายใน Android โดยใช้ Aspose.Words สำหรับ Android ผ่าน Java:
- สร้างโครงการใหม่ใน Android Studio (หรือ Eclipse) แล้วเลือกเทมเพลต “กิจกรรมว่าง”
- กำหนดค่าโครงการของคุณ
- เปิดไฟล์ build.gradle
- เพิ่มส่วนที่เก็บต่อไปนี้ใน build.gradle
repositories {
mavenCentral()
maven { url "https://repository.aspose.com/repo/" }
}
- เพิ่มรายการต่อไปนี้ในส่วนการพึ่งพาของ 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')
- เปิดใช้งานมัลติเด็กซ์โดยเพิ่มรายการต่อไปนี้ในส่วน defaultConfig ใน build.gradle
// enable multiDex
multiDexEnabled true
- ไฟล์ build.gradle ที่สมบูรณ์จะมีลักษณะดังนี้:
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"
// เปิดใช้งานมัลติเด็กซ์
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'
}
- เปิดไฟล์ activitymain.xml
- วางสคริปต์ต่อไปนี้สำหรับเค้าโครงของกิจกรรมหลัก
<?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>
- เปิดไฟล์ MainActivity.java
- วางโค้ด Java ต่อไปนี้ใน 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);
// ใช้ใบอนุญาตหากคุณมีใบอนุญาต Aspose.Words...
applyLicense();
// รับ treeview และตั้งค่าข้อความ
textView = (TextView) findViewById(R.id.textView);
textView.setText("Select a Word DOCX file...");
// กำหนดฟังการคลิกของปุ่มลอย
FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.fab);
myFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
// เปิดไฟล์ Word จากเครื่องมือเลือกไฟล์และแปลงเป็น PDF
openaAndConvertFile(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void openaAndConvertFile(Uri pickerInitialUri) {
// สร้างความตั้งใจใหม่ในการเปิดเอกสาร
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
// ประเภท mime สำหรับเอกสาร MS Word
String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
// เริ่มกิจกรรม
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();
// เปิดเอกสารที่เลือกลงในสตรีมอินพุต
try (InputStream inputStream =
getContentResolver().openInputStream(document);) {
Document doc = new Document(inputStream);
// บันทึก DOCX เป็น PDF
doc.save(outputPDF);
// แสดงตำแหน่งไฟล์ PDF ในขนมปังปิ้งและ treeview (ไม่บังคับ)
Toast.makeText(MainActivity.this, "File saved in: " + outputPDF, Toast.LENGTH_LONG).show();
textView.setText("PDF saved at: " + outputPDF);
// ดู PDF ที่แปลงแล้ว
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() {
// โหลด PDF ลงใน PDFView
PDFView pdfView = (PDFView) findViewById(R.id.pdfView);
pdfView.fromFile(new File(outputPDF)).load();
}
public void applyLicense()
{
// กำหนดใบอนุญาต
License lic= new License();
InputStream inputStream = getResources().openRawResource(R.raw.license);
try {
lic.setLicense(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- สร้างแอปและเรียกใช้งานภายในสมาร์ทโฟน Android ของคุณหรืออุปกรณ์เสมือน
- อนุญาตให้แอปนี้เข้าถึงที่เก็บข้อมูลโดยไปที่การตั้งค่า -> แอป -> สิทธิ์ -> ตัวจัดการสิทธิ์ -> ที่เก็บข้อมูล
เครื่องมือแปลง Word เป็น PDF - ซอร์สโค้ด
ดาวน์โหลดซอร์สโค้ดที่สมบูรณ์ของแอป Word เป็น PDF Converter จาก GitHub
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีแปลง Word เป็น PDF ภายในแอพ Android คุณสามารถรวมการทำงานที่คล้ายกันภายในแอปของคุณเองหรือปรับปรุงตัวแปลงนี้ให้ถึงระดับที่คุณต้องการ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Words สำหรับ Android ผ่าน Java ได้จาก เอกสารประกอบ