Word به PDF یکی از رایجترین تبدیلهای سند است و به همین دلیل است که MS Word یک ویژگی داخلی برای ذخیره اسناد Word به عنوان PDF فراهم میکند. از آنجایی که PDF یک فرمت ترجیحی برای به اشتراک گذاری اسناد یا نگهداری آنها به صورت آنلاین است، نیاز به تبدیل Word به PDF در سناریوهای مختلفی رخ می دهد. از سوی دیگر، گوشیهای هوشمند مجهز به اندروید با قرار دادن قابلیتهای متعدد درون گوشیها از طریق اپلیکیشنها، زندگی انسانها را آسانتر کردهاند. با توجه به این روند، در این مقاله، نحوه تبدیل اسناد Word به PDF را در یک برنامه اندروید به شما نشان می دهم. برای نمایش، ما یک برنامه ساده تبدیل Word به PDF برای اندروید را طی چند مرحله با ویژگیهای زیر میسازیم.
- تبدیل یک سند Word به PDF
- PDF را در حافظه گوشی ذخیره کنید
- PDF را در برنامه مشاهده کنید
کتابخانه تبدیل Word به PDF برای اندروید
برای تبدیل اسناد MS Word به فرمت PDF، از Aspose.Words برای اندروید از طریق جاوا استفاده میکنیم که به شما امکان میدهد اسناد DOC/DOCX را با استفاده از چند خط کد به صورت یکپارچه به فایلهای PDF تبدیل کنید. می توانید API را دانلود یا با استفاده از پیکربندی Maven نصب کنید.
مراحل تبدیل Word به PDF در اندروید
مراحل زیر برای ایجاد یک برنامه ساده تبدیل Word به PDF در اندروید با استفاده از Aspose.Words برای اندروید از طریق جاوا آمده است:
- یک پروژه جدید در Android Studio (یا Eclipse) ایجاد کنید و الگوی “Empty Activity” را انتخاب کنید.
- پروژه خود را پیکربندی کنید
- فایل 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')
- Multidex را با افزودن ورودی زیر در قسمت 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"
// 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'
}
- فایل 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 را باز کنید.
- کد جاوا زیر را در 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 در نان تست و همچنین نمای درخت (اختیاری)
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();
}
}
}
- برنامه را بسازید و آن را در گوشی هوشمند اندرویدی خود یا یک دستگاه مجازی اجرا کنید.
- با رفتن به Settings->Apps->Permissions->Permission manager->Storage به این برنامه اجازه دسترسی به فضای ذخیره سازی را بدهید.
تبدیل Word به PDF - کد منبع
کد منبع کامل برنامه تبدیل Word به PDF را از GitHub دانلود کنید.
نتیجه
در این مقاله با نحوه تبدیل Word به PDF در اپلیکیشن های اندروید آشنا شده اید. می توانید عملکردهای مشابه را در برنامه خود ادغام کنید یا این مبدل را تا سطح مورد نظر خود ارتقا دهید. میتوانید در مورد Aspose.Words برای Android از طریق جاوا از اسناد اطلاعات بیشتری کسب کنید.