PDFBox - Menambahkan Beberapa Baris

Dalam contoh yang diberikan di bab sebelumnya, kita membahas cara menambahkan teks ke halaman dalam PDF tetapi melalui program ini, Anda hanya dapat menambahkan teks yang muat dalam satu baris. Jika Anda mencoba menambahkan lebih banyak konten, semua teks yang melebihi ruang baris tidak akan ditampilkan.

Misalnya, jika Anda menjalankan program di atas pada bab sebelumnya dengan melewatkan string berikut, hanya sebagian saja yang akan ditampilkan.

String text = "This is an example of adding text to a page in the pdf document. we can
   add as many lines as we want like this using the showText() method of the 
   ContentStream class";

Ganti string textdari contoh di bab sebelumnya dengan string yang disebutkan di atas dan jalankan. Setelah dieksekusi, Anda akan menerima keluaran berikut.

Jika Anda mengamati hasilnya dengan hati-hati, Anda dapat melihat bahwa hanya sebagian dari string yang ditampilkan.

Untuk menambahkan beberapa baris ke PDF Anda perlu mengatur awal menggunakan setLeading() metode dan beralih ke baris baru menggunakan newline() metode setelah menyelesaikan setiap baris.

Langkah

Berikut adalah langkah-langkah membuat dokumen kosong dan menambahkan konten ke halaman di dalamnya.

Langkah 1: Memuat Dokumen yang Ada

Anda dapat memuat dokumen yang sudah ada menggunakan load()metode kelas PDDocument. Oleh karena itu, buat instance kelas ini dan muat dokumen yang diperlukan seperti yang ditunjukkan di bawah ini.

File file = new File("Path of the document"); 
PDDocument doc = PDDocument.load(file);

Langkah 2: Mendapatkan Halaman yang Diperlukan

Anda bisa mendapatkan halaman yang diperlukan dalam dokumen menggunakan getPage()metode. Ambil objek halaman yang diperlukan dengan meneruskan indeksnya ke metode ini seperti yang ditunjukkan di bawah ini.

PDPage page = doc.getPage(1);

Langkah 3: Mempersiapkan aliran Konten

Anda dapat memasukkan berbagai jenis elemen data menggunakan objek dari kelas bernama PDPageContentStream. Anda perlu meneruskan objek dokumen dan objek halaman ke konstruktor kelas ini, oleh karena itu, buat instance kelas ini dengan meneruskan dua objek yang dibuat pada langkah sebelumnya seperti yang ditunjukkan di bawah ini.

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

Langkah 4: Memulai Teks

Saat memasukkan teks ke dalam dokumen PDF, Anda dapat menentukan titik awal dan akhir teks menggunakan beginText() dan endText() metode dari PDPageContentStream kelas seperti yang ditunjukkan di bawah ini.

contentStream.beginText(); 
……………………….. 
code to add text content 
……………………….. 
contentStream.endText();

Oleh karena itu, mulailah teks menggunakan beginText() metode seperti yang ditunjukkan di bawah ini.

contentStream.beginText();

Langkah 5: Mengatur Posisi Teks

Menggunakan newLineAtOffset() metode, Anda dapat mengatur posisi pada aliran konten di halaman.

//Setting the position for the line 
contentStream.newLineAtOffset(25, 700);

Langkah 6: Mengatur Font

Anda dapat mengatur fonta teks ke gaya yang diperlukan menggunakan setFont() metode dari PDPageContentStream kelas seperti yang ditunjukkan di bawah ini untuk metode ini Anda harus meneruskan jenis dan ukuran font.

contentStream.setFont( font_type, font_size );

Langkah 7: Mengatur Teks Terdepan

Anda dapat mengatur teks di depan menggunakan setLeading() metode seperti yang ditunjukkan di bawah ini.

contentStream.setLeading(14.5f);

Langkah 8: Memasukkan Beberapa String Menggunakan newline ()

Anda dapat memasukkan beberapa string menggunakan ShowText() metode dari PDPageContentStream kelas, dengan membagi masing-masing menggunakan newline() metode seperti yang ditunjukkan di bawah ini.

contentStream. ShowText(text1); 
contentStream.newLine(); 
contentStream. ShowText(text2);

Langkah 9: Mengakhiri Teks

Setelah memasukkan teks, Anda harus mengakhiri teks menggunakan endText() metode dari PDPageContentStream kelas seperti yang ditunjukkan di bawah ini.

contentStream.endText();

Langkah 10: Menutup PDPageContentStream

Tutup PDPageContentStream objek menggunakan close() metode seperti yang ditunjukkan di bawah ini.

contentstream.close();

Langkah 11: Menyimpan Dokumen

Setelah menambahkan konten yang diperlukan, simpan dokumen PDF menggunakan save() metode dari PDDocument kelas seperti yang ditunjukkan pada blok kode berikut.

doc.save("Path");

Langkah 12: Menutup Dokumen

Terakhir, tutup dokumen menggunakan close() metode dari PDDocument kelas seperti yang ditunjukkan di bawah ini.

doc.close();

Contoh

Contoh ini menunjukkan cara menambahkan beberapa baris dalam PDF menggunakan PDFBox. Simpan program ini dalam file dengan namaAddMultipleLines.java.

import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

public class AddMultipleLines {
   public static void main(String args[]) throws IOException {

      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/my_pdf.pdf");
      PDDocument doc = document.load(file);
       
      //Creating a PDF Document
      PDPage page = doc.getPage(1);  
       
      PDPageContentStream contentStream = new PDPageContentStream(doc, page); 
       
      //Begin the Content stream 
      contentStream.beginText(); 
       
      //Setting the font to the Content stream
      contentStream.setFont( PDType1Font.TIMES_ROMAN, 16 );
       
      //Setting the leading
      contentStream.setLeading(14.5f);

      //Setting the position for the line
      contentStream.newLineAtOffset(25, 725);

      String text1 = "This is an example of adding text to a page in the pdf document.
         we can add as many lines";
      String text2 = "as we want like this using the ShowText()  method of the
         ContentStream class";

      //Adding text in the form of string
      contentStream. ShowText(text1);
      contentStream.newLine();
      contentStream. ShowText(text2);
      //Ending the content stream
      contentStream.endText();

      System.out.println("Content added");

      //Closing the content stream
      contentStream.close();

      //Saving the document
      doc.save(new File("C:/PdfBox_Examples/new.pdf"));
            
      //Closing the document
      doc.close();
   }
}

Kompilasi dan jalankan file Java yang disimpan dari command prompt menggunakan perintah berikut.

javac AddMultipleLines.java 
java AddMultipleLines

Setelah dieksekusi, program di atas menambahkan teks yang diberikan ke dokumen dan menampilkan pesan berikut.

Content added

Jika Anda memverifikasi Dokumen PDF new.pdf di jalur yang ditentukan, Anda dapat mengamati bahwa konten yang diberikan ditambahkan ke dokumen dalam beberapa baris seperti yang ditunjukkan di bawah ini.