Bu yazıda, Java’da programlı olarak sıfırdan PDF dosyası oluşturmayı öğreneceksiniz.

Java kullanarak PDF Belgeleri oluşturun

PDF, farklı türde belgeler oluşturmak için yaygın olarak kullanılan bir dosya biçimi haline geldi. Çeşitli endüstriler, makbuzlar, faturalar, iş raporları vb. belge üretimi için PDF otomasyonunu benimsemiştir. Bu tür senaryoları göz önünde bulunduran bu makale, Java’da PDF dosyalarının nasıl oluşturulacağını ele almaktadır. Kod örnekleri, Java’da sıfırdan bir PDF dosyasının nasıl oluşturulacağını ve bu PDF’ye metin, resimler, tablolar ve diğer öğelerin nasıl ekleneceğini gösterecektir.

PDF Oluşturmak için Java API - Ücretsiz İndirme

Aspose.PDF for Java, Java uygulamalarının içinden PDF dosyaları oluşturmanızı sağlayan bir PDF dosyası işleme API’sidir. API’yi kullanarak hem basit hem de karmaşık PDF belgeleri oluşturabilirsiniz. Aspose.PDF for Java, JAR olarak indirilebilir veya Maven tabanlı uygulamalara kurulabilir.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

Java’da PDF Dosyası Oluşturun

Aşağıdakiler, sıfırdan basit bir PDF dosyası oluşturma ve içine bir metin parçası ekleme adımlarıdır.

Aşağıdaki kod örneği, Java kullanarak bir PDF dosyasının nasıl oluşturulacağını gösterir.

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.PDF-for-Java adresine gidin.
// Belge nesnesini başlat
Document document = new Document();
 
//Sayfa ekle
Page page = document.getPages().add();
 
// Yeni sayfaya metin ekle
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Güncellenmiş PDF'yi kaydet
document.save("HelloWorld_out.pdf");

Java’da Metin Biçimlendirmeli PDF Dosyası Oluşturun

Şimdi PDF belgesindeki metne biçimlendirmenin nasıl uygulanacağını kontrol edelim. Metin biçimlendirmesi yazı tipini, yazı tipi boyutunu, rengini, konumunu vb. içerebilir. Bu işlemi gerçekleştirmek için gereken adımlar aşağıdadır.

  • Yeni bir PDF belgesi oluşturmak veya mevcut bir belgeyi yüklemek için Belge sınıfını kullanın.
  • Metni yerleştirmek istediğiniz Sayfa‘a erişin.
  • Metni ve konum, yazı tipi, renk, boyut vb. gibi diğer biçimlendirme seçeneklerini ayarlamak için bir TextFragment nesnesi oluşturun.
  • TextFragment nesnesini sayfaya eklemek için TextBuilder sınıfını kullanın.
  • PDF belgesini kaydetmek için Document.save(String) yöntemini kullanın.

Aşağıdaki kod örneği, Java kullanılarak bir PDF dosyasının nasıl oluşturulacağını ve metin formatlamasının nasıl uygulanacağını gösterir.

// PDF belgesini yükle
Document document = new Document();

// Sayfa ekle
Page page = document.getPages().add();

// Metin parçası oluştur
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// Metin özelliklerini ayarla
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// Desen renk alanıyla yeni renk oluştur
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// TextBuilder nesnesi oluştur
TextBuilder textBuilder = new TextBuilder(page);

// Metin parçalarını PDF sayfasına ekleyin
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// PDF belgesini kaydedin
document.save("Generated-PDF.pdf");

Java Resimli PDF Dosyaları Oluşturun

Aspose.PDF for Java kullanarak bir PDF dosyasına görüntü eklemek için izlenecek adımlar aşağıdadır.

  • PDF belgesi oluşturmak veya açmak için bir Belge nesnesi oluşturun.
  • Page nesnesinde resim eklemek istediğiniz sayfayı alın.
  • Görüntüyü Page.getResources() koleksiyonuna ekleyin.
  • Görüntüyü sayfaya yerleştirmek için operatörleri kullanın:
    • GKaydet operator to save the current graphical state.
    • Matrisi Birleştir operator to specify where the image is to be placed.
    • Yapmak operator to draw the image on the page.
    • Son olarak, güncellenmiş grafik durumunu kaydetmek için GRestore operatörünü kullanın.
  • PDF dosyasını kaydedin.

Aşağıdaki kod örneği, Java’da bir PDF dosyasına nasıl resim ekleneceğini gösterir.

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// belge aç
Document pdfDocument1 = new Document("input.pdf");

// Koordinatları ayarla
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Resmi eklemek istediğiniz sayfayı alın
Page page = pdfDocument1.getPages().get_Item(1);

// Görüntüyü akışa yükle
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Sayfa kaynaklarının Resimler koleksiyonuna bir resim ekleyin
page.getResources().getImages().add(imageStream);

// GSave operatörünü kullanarak: bu operatör mevcut grafik durumunu kaydeder
page.getContents().add(new Operator.GSave());

// Dikdörtgen ve Matris nesneleri oluşturma
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// ConcatenateMatrix (concatenate matrix) operatörünü kullanma: görüntünün nasıl yerleştirilmesi gerektiğini tanımlar
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Do işlecini kullanma: bu işleç görüntüyü çizer
page.getContents().add(new Operator.Do(ximage.getName()));

// GRestore operatörünü kullanma: bu operatör grafik durumunu geri yükler
page.getContents().add(new Operator.GRestore());

// Yeni PDF'yi kaydet
pdfDocument1.save("Updated_document.pdf");

// Görüntü akışını kapat
imageStream.close();

Java’da PDF Dosyasında Tablo Oluşturma

Tablo, verileri satırlar ve sütunlar biçiminde düzenlemenin iyi bir yoludur. Aspose.PDF, bir PDF belgesine kolayca tablo eklemenizi sağlar. Tablo oluşturma adımları aşağıdadır.

  • Belge sınıfını kullanarak kaynak dosyayı yükleyin.
  • Bir Tablo başlatın ve sütunlarını ve satırlarını ayarlayın.
  • Tablonun ayarını yapın (örn. kenarlıklar).
  • İçine satırlar ekleyerek tabloyu doldurun.
  • Tabloyu bir sayfaya ekleyin.
  • PDF dosyasını kaydedin.

Aşağıdaki kod örneği, Java’da PDF dosyalarında nasıl tablo oluşturulacağını gösterir.

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Kaynak PDF belgesini yükle
Document doc = new Document(dataDir + "input.pdf");
// Tablonun yeni bir örneğini başlatır
Table table = new Table();
// Tablo kenarlık rengini LightGray olarak ayarlayın
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// tablo hücreleri için kenarlığı ayarla
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// 10 satır eklemek için bir döngü oluşturun
for (int row_count = 1; row_count < 10; row_count++) {
	// tabloya satır ekle
	Row row = table.getRows().add();
	// tablo hücreleri ekle
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Giriş belgesinin ilk sayfasına tablo nesnesi ekleyin
doc.getPages().get_Item(1).getParagraphs().add(table);
// Tablo nesnesini içeren güncellenmiş belgeyi kaydet
doc.save(dataDir + "document_with_table.pdf");

Java’da PDF Dosyasında Form Oluşturma

PDF biçimi, kullanıcılardan girdi toplamak için form eklemeyi de destekler. Form, metin kutuları, radyo düğmeleri vb. gibi çeşitli türde alanlar içerebilir. Aşağıdaki adımlar, PDF dosyasına basit bir formun nasıl ekleneceğini gösterir.

  • PDF belgesini yükleyin veya Belge sınıfını kullanarak yeni bir belge oluşturun.
  • TextBoxField gibi eklemek istediğiniz form alanını oluşturun.
  • Alanın özelliklerini ayarlayın.
  • pdfDocument.getForm().add(Field, Int) yöntemini kullanarak alanı PDF’nin Form öğesine ekleyin.
  • PDF belgesini kaydedin.

Aşağıdaki kod örneği, Java’da bir PDF dosyasında nasıl form oluşturulacağını gösterir.

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// belge aç
Document pdfDocument = new Document("input.pdf");

// Bir alan oluştur
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// alan adını ayarla
textBoxField1.setPartialName("textbox1");

// Alan değerini ayarlayın
textBoxField1.setValue("Text Box");

// Bir kenarlık nesnesi oluşturun
Border border = new Border(textBoxField1);

// Kenarlık genişliğini ayarlayın
border.setWidth(5);

// Kenar çizgisi stilini ayarlayın
border.setDash(new Dash(1, 1));

// Alan kenarlığını ayarlayın
textBoxField1.setBorder(border);

// Alanı belgeye ekleyin
pdfDocument.getForm().add(textBoxField1, 1);

// Değiştirilen PDF'yi kaydedin
pdfDocument.save("output.pdf");

burayı kullanarak form alanları hakkında daha fazla bilgi edinin.

Java’da PDF Dosyasına Yer İmleri Ekleme

Aşağıdakiler, PDF dosyasına yer imleri ekleme adımlarıdır.

  • Belge nesnesini kullanarak bir PDF belgesi açın.
  • Belgelerin ana hatlarını bir OutlineItemCollection koleksiyonuna ekleyin.
  • Hedef sayfa numarasını ayarlayın.
  • Yer imini belgenin anahat koleksiyonuna ekleyin.
  • PDF dosyasını kaydedin.

Aşağıdaki kod örneği, Java kullanarak PDF’ye yer imlerinin nasıl ekleneceğini gösterir.

// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Kaynak PDF belgesini aç
Document pdfDocument = new Document("input.pdf");

// Bir yer imi nesnesi oluşturun
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Hedef sayfa numarasını ayarlayın
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Belgenin anahat koleksiyonuna bir yer imi ekleyin.
pdfDocument.getOutlines().add(pdfOutline);

// Güncelleme belgesini kaydedin
pdfDocument.save("output.pdf");

Ücretsiz Lisans Alın

API’yi değerlendirme sınırlamaları olmadan denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu makalede, Java’da sıfırdan PDF dosyalarının nasıl oluşturulacağını öğrendiniz. Ayrıca Java kod örnekleri, yeni veya mevcut PDF dosyalarına metin, resim, tablo, form ve yer imlerinin nasıl ekleneceğini göstermiştir. Belgeleri kullanarak Java PDF API hakkında daha fazlasını keşfedebilirsiniz.

Ayrıca bakınız