Word’den PDF’e, yaygın olarak uygulanan belge dönüştürmelerinden biridir ve bu nedenle MS Word, Word belgelerini PDF olarak kaydetmek için yerleşik bir özellik sunar. PDF, belgeleri paylaşmak veya çevrimiçi tutmak için tercih edilen bir biçim olduğundan, çeşitli senaryolarda Word’den PDF’ye dönüştürme ihtiyacı ortaya çıkar. Öte yandan, Android destekli akıllı telefonlar, uygulamalar aracılığıyla telefonların içine çok sayıda işlevsellik koyarak insanların hayatını kolaylaştırdı. Bu trendleri takip ederek, bu makalede size bir Android uygulamasında Word belgelerini PDF’ye nasıl dönüştüreceğinizi göstereceğim. Gösterim için, aşağıdaki özelliklere sahip birkaç adımda Android için basit bir Word’den PDF’e Dönüştürücü uygulaması oluşturacağız.
- Bir Word belgesini PDF’ye dönüştürme
- PDF’yi telefonun belleğine kaydedin
- Uygulama içinde PDF’yi görüntüleyin
Android için Word’den PDF’e Dönüştürücü Kitaplığı
MS Word belgelerini PDF biçimine dönüştürmek için, birkaç satır kod kullanarak DOC/DOCX belgelerini sorunsuz bir şekilde PDF dosyalarına dönüştürmenizi sağlayan Aspose.Words for Android via Java kullanacağız. API’yi indirebilir veya Maven yapılandırmasını kullanarak yükleyebilirsiniz.
Android’de Word’ü PDF’ye Dönüştürme Adımları
Java aracılığıyla Aspose.Words for Android kullanarak Android’de basit bir Word to PDF Converter uygulaması oluşturmak için izlenecek adımlar şunlardır:
- Android Studio’da (veya Eclipse) yeni bir proje oluşturun ve “Boş Etkinlik” şablonunu seçin.
- Projenizi yapılandırın.
- build.gradle dosyasını açın.
- build.gradle dosyasına aşağıdaki depolar bölümünü ekleyin.
repositories {
mavenCentral()
maven { url "https://repository.aspose.com/repo/" }
}
- build.gradle’ın bağımlılıklar bölümüne aşağıdaki girişleri ekleyin.
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')
- build.gradle’daki defaultConfig bölümünün altına aşağıdaki girişi ekleyerek multidex’i etkinleştirin.
// enable multiDex
multiDexEnabled true
- Build.gradle dosyasının tamamı aşağıdaki gibi görünecektir:
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'i etkinleştir
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 dosyasını açın.
- Ana aktivitenin düzeni için aşağıdaki betiği yapıştırın.
<?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 dosyasını açın.
- Aşağıdaki Java kodunu MainActivity.java’ya yapıştırın.
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 lisansınız varsa lisansı uygulayın...
applyLicense();
// ağaç görünümünü al ve metnini ayarla
textView = (TextView) findViewById(R.id.textView);
textView.setText("Select a Word DOCX file...");
// kayan düğmenin tıklama dinleyicisini tanımlayın
FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.fab);
myFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
// dosya seçiciden Word dosyasını açın ve PDF'ye dönüştürün
openaAndConvertFile(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void openaAndConvertFile(Uri pickerInitialUri) {
// belgeyi açmak için yeni bir niyet oluştur
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
// MS Word belgeleri için mim türleri
String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
// faaliyete başla
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();
// seçili belgeyi bir Giriş akışında aç
try (InputStream inputStream =
getContentResolver().openInputStream(document);) {
Document doc = new Document(inputStream);
// DOCX'i PDF olarak kaydet
doc.save(outputPDF);
// PDF dosya konumunu tost ve ağaç görünümünde göster (isteğe bağlı)
Toast.makeText(MainActivity.this, "File saved in: " + outputPDF, Toast.LENGTH_LONG).show();
textView.setText("PDF saved at: " + outputPDF);
// dönüştürülen PDF'yi görüntüle
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() {
// PDFView'a PDF yükleyin
PDFView pdfView = (PDFView) findViewById(R.id.pdfView);
pdfView.fromFile(new File(outputPDF)).load();
}
public void applyLicense()
{
// lisans ayarla
License lic= new License();
InputStream inputStream = getResources().openRawResource(R.raw.license);
try {
lic.setLicense(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Uygulamayı oluşturun ve Android akıllı telefonunuzda veya sanal bir cihazda çalıştırın.
- Ayarlar->Uygulamalar->İzinler->İzin yöneticisi->Depolama’ya giderek bu uygulamanın depolamaya erişmesine izin verin.
Word’den PDF’e Dönüştürücü - Kaynak Kodu
Word to PDF Converter uygulamasının tam kaynak kodunu GitHub adresinden indirin.
Çözüm
Bu makalede, Android uygulamalarında Word’ü PDF’ye nasıl dönüştüreceğinizi öğrendiniz. Benzer işlevleri kendi uygulamanıza entegre edebilir veya bu dönüştürücüyü istediğiniz seviyeye kadar geliştirebilirsiniz. Aspose.Words for Android via Java hakkında belgelerden daha fazla bilgi edinebilirsiniz.