Die Konvertierung von Word in PDF ist eine der am häufigsten praktizierten Dokumentenkonvertierungen, und aus diesem Grund bietet MS Word eine integrierte Funktion zum Speichern von Word Dokumenten als PDF. Da PDF ein bevorzugtes Format ist, um die Dokumente zu teilen oder online zu halten, ist die Konvertierung von Word in PDF in verschiedenen Szenarien erforderlich. Auf der anderen Seite haben Android-betriebene Smartphones das Leben der Menschen erleichtert, indem sie eine Vielzahl von Funktionen über Apps in die Telefone integriert haben. Um diese Trends im Auge zu behalten, zeige ich Ihnen in diesem Artikel, wie Sie Word Dokumente in einer Android-App in PDF konvertieren. Zur Demonstration erstellen wir in wenigen Schritten eine einfache Word to PDF Converter-App für Android mit den folgenden Funktionen.
- Konvertieren Sie ein Word Dokument in ein PDF
- PDF im Telefonspeicher speichern
- PDF in der App anzeigen
Word to PDF Converter Bibliothek für Android
Zum Konvertieren von MS Word Dokumenten in das PDF Format verwenden wir Aspose.Words for Android via Java, mit dem Sie DOC/DOCX Dokumente mit ein paar Codezeilen nahtlos in PDF Dateien konvertieren können. Sie können die API entweder herunterladen oder sie mithilfe der Maven-Konfiguration installieren.
Schritte zum Konvertieren von Word in PDF in Android
Im Folgenden sind die Schritte zum Erstellen einer einfachen Word zu PDF Konverter-App in Android mit Aspose.Words für Android über Java aufgeführt:
- Erstellen Sie ein neues Projekt in Android Studio (oder Eclipse) und wählen Sie die Vorlage „Empty Activity“ aus.
- Konfigurieren Sie Ihr Projekt.
- Öffnen Sie die build.gradle Datei.
- Fügen Sie den folgenden Repositories-Abschnitt in build.gradle hinzu.
repositories {
mavenCentral()
maven { url "https://repository.aspose.com/repo/" }
}
- Fügen Sie die folgenden Einträge im Abschnitt „dependencies“ von build.gradle hinzu.
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')
- Aktivieren Sie Multidex, indem Sie den folgenden Eintrag im Abschnitt defaultConfig in build.gradle hinzufügen.
// enable multiDex
multiDexEnabled true
- Die vollständige build.gradle Datei sieht wie folgt aus:
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 aktivieren
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'
}
- Öffnen Sie die Datei activitymain.xml.
- Fügen Sie das folgende Skript für das Layout der Hauptaktivität ein.
<?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>
- Öffnen Sie die MainActivity.java Datei.
- Fügen Sie den folgenden Java-Code in MainActivity.java ein.
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);
// wenden Sie die Lizenz an, wenn Sie die Aspose.Words-Lizenz haben...
applyLicense();
// Holen Sie sich die Baumansicht und legen Sie den Text fest
textView = (TextView) findViewById(R.id.textView);
textView.setText("Select a Word DOCX file...");
// Definieren Sie den Klick-Listener der schwebenden Schaltfläche
FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.fab);
myFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
// Öffnen Sie eine Word Datei aus der Dateiauswahl und konvertieren Sie sie in PDF
openaAndConvertFile(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void openaAndConvertFile(Uri pickerInitialUri) {
// Erstellen Sie eine neue Absicht zum Öffnen des Dokuments
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
// MIME typen für MS Word Dokumente
String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
// Aktivität starten
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();
// Öffnen Sie das ausgewählte Dokument in einem Eingabestream
try (InputStream inputStream =
getContentResolver().openInputStream(document);) {
Document doc = new Document(inputStream);
// DOCX als PDF speichern
doc.save(outputPDF);
// zeigt den Speicherort der PDF Datei im Toast sowie in der Baumansicht (optional)
Toast.makeText(MainActivity.this, "File saved in: " + outputPDF, Toast.LENGTH_LONG).show();
textView.setText("PDF saved at: " + outputPDF);
// Konvertiertes PDF anzeigen
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 in den PDFView laden
PDFView pdfView = (PDFView) findViewById(R.id.pdfView);
pdfView.fromFile(new File(outputPDF)).load();
}
public void applyLicense()
{
// Lizenz festlegen
License lic= new License();
InputStream inputStream = getResources().openRawResource(R.raw.license);
try {
lic.setLicense(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Erstellen Sie die App und führen Sie sie auf Ihrem Android-Smartphone oder einem virtuellen Gerät aus.
- Erlauben Sie dieser App den Zugriff auf den Speicher, indem Sie zu Einstellungen->Apps->Berechtigungen->Berechtigungsmanager->Speicher gehen.
Word to PDF Converter - Quellcode
Laden Sie den vollständigen Quellcode der Word to PDF Converter-App von GitHub herunter.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie Word in Android-Apps in PDF konvertieren. Sie können ähnliche Funktionen in Ihre eigene App integrieren oder diesen Konverter auf das gewünschte Niveau erweitern. Weitere Informationen zu Aspose.Words für Android über Java finden Sie in der Dokumentation.