0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan10 halaman

Cara Membuat PDF di Android dengan iText

Dokumen tersebut memberikan panduan cara membuat dokumen PDF menggunakan library iTextPDF 5 di Android. Langkah-langkahnya meliputi menambahkan dependency iTextPDF dan library lain ke gradle, menambahkan izin storage di manifest, membuat model objek dokumen, dan menambahkan komponen tombol untuk memanggil pembuatan dokumen PDF.

Diunggah oleh

Aldi Alamsyah
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan10 halaman

Cara Membuat PDF di Android dengan iText

Dokumen tersebut memberikan panduan cara membuat dokumen PDF menggunakan library iTextPDF 5 di Android. Langkah-langkahnya meliputi menambahkan dependency iTextPDF dan library lain ke gradle, menambahkan izin storage di manifest, membuat model objek dokumen, dan menambahkan komponen tombol untuk memanggil pembuatan dokumen PDF.

Diunggah oleh

Aldi Alamsyah
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Home Android Programming Rest Api Cara cepat Umum 

Ayub
kukuh

Home / iText PDF / Cara membuat Dokumen PDF dengan library itexPDF 5 di Andorid
ARSIP BLOG

Cara membuat Dokumen PDF Arsip Blog

dengan library itexPDF 5 di Andorid


 September 14, 2019  iText PDF POPULAR POSTS

Cara membuat Dokumen PDF


Pada kali ini saya mau share sedikit bagaimana cara membuat dokumen PDF atau laporan
dengan library itexPDF 5 di
berextesion .pdf pada aplikasi android yang akan dibuat. Disini saya mengunakan IDE android
Andorid
studio 3.5. Langsung open android studio kalian, buat projek baru File => New => New Project
=> Creates a new empty activiy. di cofigure project pilih bahasa java Cara membagikan File PDF di
android
buat sebuah folder font didalam folder res, caranya pilih folder res klik kanan => new =>
android resource directory =>isi directory name = font => directory tipe = font. Tambahkan file
berikut : Membuat Tampilan
Speedometer dengan library
[Link] (font type) (cari di internet) Speedview
[Link] (font type) (cari diinternet)
[Link] (font type) (cari diinternet)

Selanjutnya didalam folder res => layout pada layout activity_main.xml kita tambahkan 1 CATEGORIES
component button
Bar Chart ButterKnife Zelezny
<?xml version="1.0" encoding="utf-8"?>
<[Link] xmlns:android="[Link] Cara Cepat Crop Image IText PDF
[Link]/apk/res/android"
DTO Generator MPAndroidChart
xmlns:app="[Link]
xmlns:tools="[Link] Screenshoot Share File
android:layout_width="match_parent"
Speedometer SpeedView
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/cetak"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create Dokument"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
</[Link] >

Gradle Script
pada bagian Gradle level aplikasi (Module:app) tambahkan pada bagian depedencies library
itextpdf, Dexter dan Gson. Itextpdf untuk membuat dokumen dengan [Link], dexter
untuk runtime permissions untuk android api level 23 (Marshmallow) ke atas dan Gson untuk
convert java objek ke JSON maupun sebaliknnya. Untuk gsonnya sifatnya opsional

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation '[Link]:appcompat:1.0.2'
implementation '[Link]:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation '[Link]:runner:1.1.1'
androidTestImplementation '[Link]:espresso-core:3.1.1'
//itextfpdf
implementation '[Link]:itextg:5.5.10'
// Dexter runtime permissions
implementation "[Link]:dexter:5.0.0"
//gson
implementation '[Link]:gson:2.8.5'
}

[Link]
tambahkan 2 permission untuk mengakses local storage android kalian.

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="[Link]
package="[Link]">
<uses-permission android:name="[Link].READ_EXTERNAL_STORAGE" /
>
<uses-permission android:name="[Link].WRITE_EXTERNAL_STORAGE"
/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="[Link]" />
<category android:name="[Link]" />
</intent-filter>
</activity>
</application>
</manifest>

Model dokumen
buat class objek model dokumen, yang isinya berupa setter dan getter.

package [Link];

import [Link];
import [Link];

/**
* @author ayubkukuh
* @since 1.0
*/
public class Modeldokumen {

public static class StatusPembayaranEntity {


@Expose
@SerializedName("penerima")
private String penerima;
@Expose
@SerializedName("tanggal")
private String tanggal;
@Expose
@SerializedName("jenispembayaran")
private String jenispembayaran;
@Expose
@SerializedName("nopayment")
private String nopayment;
@Expose
@SerializedName("sisa")
private int sisa;
@Expose
@SerializedName("total")
private int total;
@Expose
@SerializedName("kamar")
private String kamar;

public String getPenerima() {


return penerima;
}

public void setPenerima(String penerima) {


[Link] = penerima;
}

public String getTanggal() {


return tanggal;
}

public void setTanggal(String tanggal) {


[Link] = tanggal;
}

public String getJenispembayaran() {


return jenispembayaran;
}

public void setJenispembayaran(String jenispembayaran) {


[Link] = jenispembayaran;
}

public String getNopayment() {


return nopayment;
}

public void setNopayment(String nopayment) {


[Link] = nopayment;
}

public int getSisa() {


return sisa;
}

public void setSisa(int sisa) {


[Link] = sisa;
}

public int getTotal() {


return total;
}

public void setTotal(int total) {


[Link] = total;
}

public String getKamar() {


return kamar;
}

public void setKamar(String kamar) {


[Link] = kamar;
}
}

public static class StatusDokumenEntity {


@Expose
@SerializedName("kartukuning")
private boolean kartukuning;
@Expose
@SerializedName("kartukeluarga")
private boolean kartukeluarga;
@Expose
@SerializedName("foto")
private boolean foto;
@Expose
@SerializedName("kitas")
private boolean kitas;
@Expose
@SerializedName("bukunikah")
private boolean bukunikah;
@Expose
@SerializedName("paspor")
private boolean paspor;
@Expose
@SerializedName("ktp")
private boolean ktp;

public boolean getKartukuning() {


return kartukuning;
}

public void setKartukuning(boolean kartukuning) {


[Link] = kartukuning;
}

public boolean getKartukeluarga() {


return kartukeluarga;
}

public void setKartukeluarga(boolean kartukeluarga) {


[Link] = kartukeluarga;
}

public boolean getFoto() {


return foto;
}

public void setFoto(boolean foto) {


[Link] = foto;
}

public boolean getKitas() {


return kitas;
}

public void setKitas(boolean kitas) {


[Link] = kitas;
}

public boolean getBukunikah() {


return bukunikah;
}

public void setBukunikah(boolean bukunikah) {


[Link] = bukunikah;
}

public boolean getPaspor() {


return paspor;
}

public void setPaspor(boolean paspor) {


[Link] = paspor;
}

public boolean getKtp() {


return ktp;
}

public void setKtp(boolean ktp) {


[Link] = ktp;
}
}

public static class DatapesertastatusOpenEntity {


@Expose
@SerializedName("nopaspor")
private String nopaspor;
@Expose
@SerializedName("noktp")
private String noktp;
@Expose
@SerializedName("nohp")
private String nohp;
@Expose
@SerializedName("namapeserta")
private String namapeserta;

public String getNopaspor() {


return nopaspor;
}

public void setNopaspor(String nopaspor) {


[Link] = nopaspor;
}

public String getNoktp() {


return noktp;
}

public void setNoktp(String noktp) {


[Link] = noktp;
}

public String getNohp() {


return nohp;
}

public void setNohp(String nohp) {


[Link] = nohp;
}

public String getNamapeserta() {


return namapeserta;
}

public void setNamapeserta(String namapeserta) {


[Link] = namapeserta;
}
}

public static class DatapaketEntity {


@Expose
@SerializedName("namapaket")
private String namapaket;
@Expose
@SerializedName("nopesanan")
private String nopesanan;

public String getNamapaket() {


return namapaket;
}

public void setNamapaket(String namapaket) {


[Link] = namapaket;
}

public String getNopesanan() {


return nopesanan;
}

public void setNopesanan(String nopesanan) {


[Link] = nopesanan;
}

DokumenPDF
Buat class DokumenPDF, diclass ini terdapat fungsi-fungsi untuk membuat sebuah dokumen
dengan memanfaatkan library itexPdf 5. untuk {directorydocument} (tempat file
disimpan) sesuaikan dengan nama folder yang kalian ingginkan contoh "/dokumentpdf" dll

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

/**
* @author ayubkukuh
* @since 1.0
*/
public class DokumenPDF {
private Locale localeID;
private NumberFormat formatRupiah;
public DokumenPDF() {
localeID = new Locale("in","ID");
formatRupiah = [Link](localeID);
}
public void createdokumenPDF ([Link] datapaket,
[Link] ope
n,
[Link] dokumen,
[Link] pembayar
an,
String buttonStatusdatapeserta,
String buttonStatusDokument,
String buttonStatusPembayaran) {
try {
//path untuk menyimpan file dokument PDF
Date now = new Date(); //tanggal sekarang
[Link]("yyyy-MM-dd_hh:mm:ss",now);
String filename = "DokumentPDF" + now + ".pdf";
File defaultFile = new File([Link]
y()
.getAbsolutePath() + "{directorydocument}");
if (![Link]()) [Link]();
File file = new File(defaultFile,filename);
if ([Link]()) {
[Link]();
file = new File(defaultFile,filename);
}
//buat objeck dokument
Document document = new Document();
[Link](document,new FileOutputStream(file));
[Link]();
[Link](PageSize.A4);
[Link]();

[Link]("Ayub kukuh");
[Link]("Ayub k.p");

//warna color Font


BaseColor mColorAccent = new BaseColor(0,153,204,255);

//ukururan Font
float mHeadingFontSize = 20.0f;
float mValueFontSize = 26.0f;

//objek BaseFont besechekbox, untuk membuat kotak checkbox yang di


ambil dari font type [Link]
//objek BaseFont baseunchekbox, untuk membuat uncheckbox yang diam
bil dari font type [Link]
BaseFont basecheckbox = [Link]("res/font/[Link]
f",BaseFont.IDENTITY_H,false);
BaseFont baseuncheckbox = [Link]("res/font/wingdings1
.ttf",BaseFont.IDENTITY_H,false);
BaseFont montserratregular = [Link]("res/font/montser
[Link]","UTF-8",[Link]);

//buat objeck Font dengan Constructor 3 arg : new Font(BaseFont,Si


zeFont,StyleFont)
Font checkbox = new Font(basecheckbox,30f,[Link]);
Font uncheckbox = new Font(baseuncheckbox,30f,[Link]);

//garis pemisah (garis horisaontal)


LineSeparator lineSeparator = new LineSeparator();
[Link](new BaseColor(0,0,0,68));

Font fontheader = new Font(montserratregular,36.0f,[Link],Bas


[Link]);
Font fontnormal = new Font(montserratregular,mValueFontSize,Font.N
ORMAL,[Link]);
Font fontnormalcolorblue = new Font(montserratregular,mValueFontSi
ze,[Link],mColorAccent);

//Chunk mempresentasikan potongan dari sebuah text, Chunk dapat be


risi singel karater atau bebrapa kalimat

//Nama paket
Chunk namapaketchunk = new Chunk([Link](),fonthead
er);
Paragraph namapaketparagraf = new Paragraph(namapaketchunk);
[Link](Element.ALIGN_LEFT);
[Link](namapaketparagraf);

//no pesanan
Chunk nomorpesanan = new Chunk("[Link] " + [Link]
nan(),fontnormalcolorblue);
Paragraph nopesananparagraf = new Paragraph(nomorpesanan);
[Link](Element.ALIGN_LEFT);
[Link](nopesananparagraf);

//lineSeparator
[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//data peserta
Chunk datapesertachunk = new Chunk(new VerticalPositionMark());
Paragraph datapesertaparagraf = new Paragraph("Data peserta",fontn
ormal);
[Link](new Chunk(datapesertachunk));
[Link](buttonStatusdatapeserta);
[Link](datapesertaparagraf);

//lineSeparator
[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//namapeserta
Chunk namapesertachunk = new Chunk(new VerticalPositionMark());
Paragraph namapesertaparagraf = new Paragraph("Nama peserta",fontn
ormal);
[Link](new Chunk(namapesertachunk));
[Link]([Link]());
[Link](namapesertaparagraf);

//nohp
Chunk pnohchunk = new Chunk(new VerticalPositionMark());
Paragraph nohpaparagraf = new Paragraph("[Link]",fontnormal);
[Link](new Chunk(pnohchunk));
[Link]([Link]());
[Link](nohpaparagraf);

//noktp
Chunk noktpchunk = new Chunk(new VerticalPositionMark());
Paragraph noktpparagraf = new Paragraph("[Link]",fontnormal);
[Link](new Chunk(noktpchunk));
[Link]([Link]());
[Link](noktpparagraf);

//nopasspor
Chunk nopasporchunk = new Chunk(new VerticalPositionMark());
Paragraph nopasporparagraf = new Paragraph("[Link]",fontnormal

[Link](new Chunk(nopasporchunk));
[Link]([Link]());
[Link](nopasporparagraf);

//lineSeparator
[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//status dokumen
Chunk dokumenchunk = new Chunk(new VerticalPositionMark());
Paragraph dokumenparagraf = new Paragraph("Status Dokumen",fontnor
mal);
[Link](new Chunk(dokumenchunk));
[Link](buttonStatusDokument);
[Link](dokumenparagraf);

[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//R = untuk untuk membuat bentuk checkbox


//o = untuk membuat bentuk uncheckbox
//buat objeck table
PdfPTable table = new PdfPTable(4); // 4 columns.

[Link](Element.ALIGN_LEFT);
PdfPCell cell1 = new PdfPCell(new Paragraph([Link]() ? "R"
: "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell2 = new PdfPCell(new Paragraph("KTP",fontnormal));
PdfPCell cell3 = new PdfPCell(new Paragraph([Link]() ? "R
" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell4 = new PdfPCell(new Paragraph("FOTO",fontnormal));
PdfPCell cell5 = new PdfPCell(new Paragraph([Link]() ?
"R" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell6 = new PdfPCell(new Paragraph("PASPORT",fontnormal))
;
PdfPCell cell7 = new PdfPCell(new Paragraph([Link]
ga() ? "R" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell8 = new PdfPCell(new Paragraph("KK",fontnormal));
PdfPCell cell9 = new PdfPCell(new Paragraph([Link]()
? "R" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell10 = new PdfPCell(new Paragraph("BUKU NIKAH",fontnorm
al));
PdfPCell cell11 = new PdfPCell(new Paragraph([Link]
g() ? "R" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell12 = new PdfPCell(new Paragraph("KARTU KUNING",fontno
rmal));
PdfPCell cell13 = new PdfPCell(new Paragraph([Link]() ?
"R" : "o",[Link]() ? checkbox : uncheckbox));
PdfPCell cell14 = new PdfPCell(new Paragraph("KITAS",fontnormal));
PdfPCell cell15 = new PdfPCell(new Paragraph("",fontnormal));
PdfPCell cell16 = new PdfPCell(new Paragraph("",fontnormal));

//setiap cell set tanpa border


[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);
[Link](Rectangle.NO_BORDER);

//setting align setiap cell


[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);
[Link](Element.ALIGN_CENTER);
[Link](Element.ALIGN_LEFT);

[Link](cell1);
[Link](cell2);
[Link](cell3);
[Link](cell4);
[Link](cell5);
[Link](cell6);
[Link](cell7);
[Link](cell8);
[Link](cell9);
[Link](cell10);
[Link](cell11);
[Link](cell12);
[Link](cell13);
[Link](cell14);
[Link](cell15);
[Link](cell16);

[Link](100);
float[] columnWidths = new float[]{10f,50f,10f,50f};
[Link](columnWidths);
[Link](table);

//seprator
[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//status pembayaran
Chunk pembayaranchunk = new Chunk(new VerticalPositionMark());
Paragraph pembayaranparagraf = new Paragraph("Status Pembayaran",f
ontnormal);
[Link](new Chunk(pembayaranchunk));
[Link](buttonStatusPembayaran);
[Link](pembayaranparagraf);

//garis horizontal
[Link](new Paragraph(""));
[Link](new Chunk(lineSeparator));
[Link](new Paragraph(""));

//tiepkamar
Chunk tipekamarchunk = new Chunk(new VerticalPositionMark());
Paragraph tipekamarparagraf = new Paragraph("Kamar " + pembayaran.
getKamar(),fontnormal);

//total
[Link](new Chunk(tipekamarchunk));
[Link]("Total: " + [Link](pembayaran.g
etTotal()));
[Link](tipekamarparagraf);

//sisa
Chunk sisachunk = new Chunk(new VerticalPositionMark());
Paragraph sisaparagraf = new Paragraph("",fontnormal);
[Link](new Chunk(sisachunk));
[Link]("Sisa : " + [Link]([Link]
a()));
[Link](sisaparagraf);

//pay-tanggal
Chunk paydatebayarchunk = new Chunk(new VerticalPositionMark());
Paragraph paydateparagraf = new Paragraph([Link](
),fontnormal);
[Link](new Chunk(paydatebayarchunk));
[Link]([Link]());
[Link](paydateparagraf);

//totalbayar
Chunk totalbayarchunk = new Chunk(new VerticalPositionMark());
Paragraph totalbayarparagraf = new Paragraph("Total Bayar",fontnor
mal);
[Link](new Chunk(totalbayarchunk));
[Link]([Link]([Link]() -
[Link]()));
[Link](totalbayarparagraf);

//close dokument
[Link]();

} catch (IOException | DocumentException ie) {


Log.e("createPdf",[Link]());
} catch (ActivityNotFoundException ae) {
Log.e("createPdf",[Link]());
}
}
}

Buka file [Link] buat 2 method yang pertama requestStoragepermission dan


yang kedua method cetak(), pada method cetak() kita buat instance dari
[Link]. Kita set setiap nilai untuk setiap property dan buat instance
[Link], panggil method createdokumentPDF() dengan memparsing argument
modeldokumen kita

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);

Button btncetak = findViewById([Link]);


[Link](new [Link]() {
@Override
public void onClick(View view) {
requestStoragePermission();
}
});
}

private void Cetak(){


//buat objek model
[Link] datapaketEntity = new [Link]
ketEntity();
[Link] datapesertastatusOpenEntity =
new [Link]();
[Link] dokumenEntity = new [Link]
usDokumenEntity();
[Link] pembayaranEntity = new Modeldokume
[Link]();

//header
[Link]("Paket ka'bah");
[Link]("10");

//data perserta
[Link]("Ayub kukuh P");
[Link]("0881238406000");
[Link]("17012000099");
[Link]("00001234AB");

//data dokument
[Link](true);
[Link](false);
[Link](true);
[Link](false);
[Link](true);
[Link](true);
[Link](true);

//pembayaran
[Link]("Single");
[Link](10000000);
[Link](4000000);
[Link]("Kredit");
[Link]("14-09-2019");
[Link]("Si A");
//buat dokumentPDF
DokumenPDF dokumenPDF = new DokumenPDF();
[Link](datapaketEntity,
datapesertastatusOpenEntity,
dokumenEntity,
pembayaranEntity,
"Approve",
"Open",
"Open");

[Link](this,"Dokument tersimpan",Toast.LENGTH_SHORT).show();
}

private void requestStoragePermission() {


[Link](this)
.withPermissions(
[Link].READ_EXTERNAL_STORAGE,
[Link].WRITE_EXTERNAL_STORAGE)
.withListener(new MultiplePermissionsListener() {
@Override
public void onPermissionsChecked(MultiplePermissionsReport
report) {
// check if all permissions are granted
if ([Link]()) {
Cetak();
}
// check for permanent denial of any permission
if ([Link]()) {
// show alert dialog navigating to Settings
}
}

@Override
public void onPermissionRationaleShouldBeShown(List permis
sions,PermissionToken token) {
[Link]();
}
}).
withErrorListener(new PermissionRequestErrorListener() {
@Override
public void onError(DexterError error) {
[Link](getApplicationContext(),"Error occurred
! ",Toast.LENGTH_SHORT).show();
}
})
.onSameThread()
.check();
}
}

Strukut projeknya seperti ini

Jalankan aplikasinya => klik tombol Create dokument

Setelah dokumen pdf berhasil tersimpan, silakan lihat di storage => {nama directory} => file
dokumen
Selamat mencoba, Semoga bermanfaat :D

SHARE THIS:  Facebook  Twitter  Google+  Pinterest  Linkedin

YOU MAY ALSO LIKE

iText PDF

PREVIOUS NEXT
You are viewing Last Post Cara membagikan File PDF di android

POST COMMENT BLOGGER DISQUS FACEBOOK

1 Komentar:

Anon 3 Juni 2021 13.36

Mas kalau mau tampil list bagaimana ya??


Balas

Masukkan komentar Anda...

Beri komentar sebagai: Google Account

Publikasikan Pratinjau

RANDOM POSTS TAGS RECENT POSTS

Bar Chart ButterKnife Zelezny IText PDF

Cara Cepat Crop Image DTO Generator

MPAndroidChart Screenshoot Share File

Speedometer SpeedView

Created By ThemeXpose 

Anda mungkin juga menyukai