Word to PDF Converter في Android

يعد Word to PDF أحد عمليات تحويل المستندات التي تتم ممارستها على نطاق واسع وهذا هو السبب في أن MS Word يوفر ميزة مضمنة لحفظ مستندات Word بتنسيق PDF. نظرًا لأن PDF هو تنسيق مفضل لمشاركة المستندات أو الاحتفاظ بها عبر الإنترنت ، فإن الحاجة إلى تحويل Word إلى PDF تحدث في سيناريوهات مختلفة. من ناحية أخرى ، جعلت الهواتف الذكية التي تعمل بنظام Android حياة البشر أسهل من خلال وضع العديد من الوظائف داخل الهواتف عبر التطبيقات. بمراقبة هذه الاتجاهات ، في هذه المقالة ، سأوضح لك كيفية تحويل مستندات Word إلى PDF داخل تطبيق Android. للتوضيح ، سننشئ تطبيق Word to PDF Converter بسيطًا لنظام Android في بضع خطوات يحتوي على الميزات التالية.

  • قم بتحويل مستند Word إلى PDF
  • احفظ ملف PDF في مساحة تخزين الهاتف
  • عرض ملف PDF داخل التطبيق

مكتبة محول Word إلى PDF لنظام Android

لتحويل مستندات MS Word إلى تنسيق PDF ، سنستخدم Aspose.Words for Android via Java الذي يتيح لك تحويل مستندات DOC / DOCX إلى ملفات PDF بسلاسة باستخدام سطرين من التعليمات البرمجية. يمكنك إما تنزيل API أو تثبيته باستخدام تكوين Maven.

خطوات تحويل Word إلى PDF في Android

فيما يلي خطوات إنشاء تطبيق Word to PDF Converter بسيط في Android باستخدام Aspose.Words for Android عبر Java:

  • أنشئ مشروعًا جديدًا في Android Studio (أو Eclipse) وحدد نموذج “Empty Activity”.
إنشاء مشروع جديد في android studio
  • تكوين مشروعك.
تكوين مشروع Android
  • افتح ملف build.gradle.
تحديث 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 عن طريق إضافة الإدخال التالي ضمن قسم التكوين الافتراضي في 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
  • الصق البرنامج النصي التالي لتخطيط النشاط الرئيسي.
<?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.
أضف كلمة إلى رمز محول pdf
  • الصق كود 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();
        // الحصول على استعراض الشجرة وتعيين نصها
        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();
        }
    }
}
  • قم ببناء التطبيق وتشغيله داخل هاتف Android الذكي أو جهاز افتراضي.
  • اسمح لهذا التطبيق بالوصول إلى التخزين بالانتقال إلى الإعدادات-> التطبيقات-> الأذونات-> مدير الأذونات-> التخزين.
Android Word to PDF Converter

Word to PDF Convetrer - شفرة المصدر

قم بتنزيل الكود المصدري الكامل لتطبيق Word to PDF Converter من GitHub.

استنتاج

في هذه المقالة ، تعلمت كيفية تحويل Word إلى PDF داخل تطبيقات Android. يمكنك دمج وظائف مماثلة داخل التطبيق الخاص بك أو تحسين هذا المحول إلى المستوى الذي تريده. يمكنك معرفة المزيد حول Aspose.Words لنظام Android عبر Java من التوثيق.

أنظر أيضا