ממיר Word ל-PDF באנדרואיד

ה-Word ל-PDF היא אחת מהמרות המסמכים הנפוצות, וזו הסיבה ש-MS Word מספק תכונה מובנית לשמירת מסמכי Word כ-PDF. מכיוון ש-PDF הוא פורמט מועדף לשיתוף המסמכים או לשמירתם באינטרנט, הצורך בהמרת Word ל-PDF מתרחש בתרחישים שונים. מצד שני, סמארטפונים המונעים על ידי אנדרואיד הפכו את חיי בני האדם לקלים יותר על ידי הכנסת שפע של פונקציונליות לטלפונים באמצעות אפליקציות. במעקב אחר מגמות אלה, במאמר זה, אני אראה לך כיצד להמיר מסמכי Word ל-PDF בתוך אפליקציית אנדרואיד. לצורך הדגמה, נבנה אפליקציית Word to PDF Converter פשוטה עבור אנדרואיד תוך מספר שלבים עם התכונות הבאות.

  • המרת מסמך Word ל-PDF
  • שמור PDF באחסון הטלפון
  • הצג PDF בתוך האפליקציה

ספריית ממיר וורד ל-PDF עבור אנדרואיד

להמרת מסמכי MS Word לפורמט PDF, נשתמש ב-Aspose.Words עבור אנדרואיד דרך Java המאפשרת להמיר מסמכי DOC/DOCX לקובצי PDF בצורה חלקה באמצעות כמה שורות קוד. אתה יכול להוריד את ה-API או להתקין אותו באמצעות תצורת Maven.

שלבים להמרת Word ל-PDF באנדרואיד

להלן השלבים ליצירת אפליקציית Word to PDF Converter פשוטה באנדרואיד באמצעות Aspose.Words עבור Android באמצעות Java:

  • צור פרויקט חדש ב-Android Studio (או Eclipse) ובחר בתבנית “פעילות ריקה”.
צור פרויקט חדש באנדרואיד סטודיו
  • הגדר את הפרויקט שלך.
הגדר את Android Project
  • פתח את הקובץ 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 על ידי הוספת הערך הבא תחת סעיף 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
  • הדבק את הסקריפט הבא לפריסה של הפעילות הראשית.
<?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.
הוסף word לקוד ממיר 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);
        // סוגי פנטומימה עבור מסמכי 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();
        }
    }
}
  • בנה את האפליקציה והפעל אותה בסמארטפון אנדרואיד או במכשיר וירטואלי.
  • אפשר לאפליקציה זו לגשת לאחסון על ידי מעבר אל הגדרות->אפליקציות->הרשאות->מנהל הרשאות->אחסון.
ממיר אנדרואיד וורד ל-PDF

Word to PDF Convetrer - קוד מקור

הורד את קוד המקור המלא של אפליקציית Word to PDF Converter מ-GitHub.

סיכום

במאמר זה, למדת כיצד להמיר Word ל-PDF בתוך אפליקציות אנדרואיד. אתה יכול לשלב פונקציונליות דומה בתוך האפליקציה שלך או לשפר את הממיר הזה עד לרמה הרצויה. אתה עשוי ללמוד עוד על Aspose.Words עבור אנדרואיד דרך Java מתוך תיעוד.

ראה גם