Java PDF
Java ile PDF dosyası oluşturma, meta bilgi, resim, tablo, liste, bölüm ekleme işlemlerinde kullanılan iText paketi ile ilgili bilgiler yer alıyor.
PDF paketleri
Java ile PDF okuma ve oluşturma işlemleri için Apache PDFBox, iText, JPod gibi çeşitli paketler yer almaktadır.
Bu paketler web sayfalarından indirilip kullanılan IDE’nin libraries kısmına veya Maven, Gradle gibi paket yöneticilerine eklenerek projeye eklenebilir.
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.3</version>
</dependency>
iText Kullanımı
iText paketi içerisinde PDF işlemlerinde kullanmak için çeşitli sınıflar yer alır.
com.itextpdf.text.Document: PDF dokümanını ifade der.
com.itextpdf.text.Paragraph: Paragrafı ifade eder.
com.itextpdf.text.Image: Resimi ifade eder.
com.itextpdf.text.Chapter: Bölümleri ifade eder.
com.itextpdf.text.Font: Yazı tipini ifade eder.
com.itextpdf.text.List: Listeyi ifade eder.
com.itextpdf.text.pdf.PDFPTable: Tabloyu ifade eder.
com.itextpdf.text.Anchor: Bağlantıyı ifade eder.
com.itextpdf.text.pdf.PdfWriter: PDF yazma işlemini ifade eder.
com.itextpdf.text.pdf.PdfReader: PDF okuma işlemini ifade eder.
PDF işlemleri sırasında bu sınıflar ve sınıflarda yer alan özellik ve metotlar kullanılarak PDF işlemleri yapılır.
PDF oluşturma
Aşağıdaki örnek çalıştırıldığında MerhabaDunya.pdf dosyasını oluşturacak ve içerisinde Merhaba Dünya yazacaktır.
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class App {
public static void main(String[] args) {
try {
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("MerhabaDunya.pdf"));
document.open();
document.add(new Paragraph("Merhaba dünya"));
document.close();
pdfWriter.close();
} catch (DocumentException | FileNotFoundException ex) {
System.out.println(ex.getMessage());
}
}
}
Meta bilgi ekleme
Oluşturulan PDF dosyasına yazar, başlık gibi çeşitli bilgiler ekelemk için Document sınıfında yer alan addAuthor, addCreator, addTitle gibi metotlar kullanılır.
// diğer kodlar
document.addAuthor("Yusuf Sezer");
document.addCreationDate();
document.addCreator("www.yusufsezer.com.tr");
document.addTitle("PDF işlemleri");
document.addSubject("PDF dosyası açıklaması burada yer alabilir.");
// diğer kodlar
Resim ekleme
PDF dosyasın resim eklemek için Image sınıfının kullanılması ve dokümana add metodu ile eklenmesi yeterli olacaktır.
Image image = Image.getInstance("resim-dosyasi.jpg");
document.add(image);
veya
Image image = Image.getInstance(URI.create("https://www.yusufsezer.com.tr/yusuf-sezer.jpg").toURL());
document.add(image);
Tablo ekleme
PDF dosyasına tablo, sütun eklemek için PDFPTable ve PdfPCell sınıfının kullanılması ve dokümana add metodu ile eklenmesi yeterli olacaktır.
PdfPTable table = new PdfPTable(3);
table.setWidthPercentage(100);
table.setSpacingBefore(10f);
table.setSpacingAfter(10f);
for (int i = 1; i < 11; i++) {
PdfPCell cell = new PdfPCell(new Paragraph(i + " Yusuf Sezer"));
cell.setBorderColor(BaseColor.BLACK);
cell.setPadding(10f);
table.addCell(cell);
}
document.add(table);
Liste ekleme
PDF dosyasına liste eklemek için List, RomanList, GreekList sınıflarının kullanılması ve dokümana add metodu ile eklenmesi yeterli olacaktır.
List list = new List(List.ORDERED);
list.add(new ListItem("Yusuf"));
list.add(new ListItem("Sefa"));
list.add(new ListItem("Sezer"));
document.add(list);
veya
List list = new RomanList();
list.add(new ListItem("Yusuf"));
list.add(new ListItem("Sefa"));
list.add(new ListItem("Sezer"));
document.add(list);
Alt liste eklemek için List sınıfının add metodunun kullanılması yeterli olacaktır.
List list = new RomanList();
list.add(new ListItem("Yusuf"));
List altList = new List();
altList.add(new ListItem("Alt liste"));
list.add(altList);
list.add(new ListItem("Sefa"));
list.add(new ListItem("Sezer"));
document.add(list);
Bölüm ekleme
PDF dosyasına bölüm eklemek için Chapter sınıflarının kullanılması ve dokümana add metodu ile eklenmesi yeterli olacaktır.
Chapter chapter = new Chapter("1. Bölüm", 1);
chapter.add(new Paragraph("1. Bölüm içeriği"));
document.add(chapter);
Chapter chapter1 = new Chapter("2. Bölüm", 2);
chapter1.add(new Paragraph("2. Bölüm içeriği"));
document.add(chapter1);
iText paketi ayrıca içerisinde yer alan çeşitli sınıflarla pdf şifreleme, pdf okuma ve düzenleme gibi işlemleri kolay bir şekilde yapmayı sağlar.
Java Derslerine buradan ulaşabilirsiniz.
Hayırlı günler dilerim.