Vektör grafiklerini PDF dosyalarına eklemek, raporlar, faturalar ve etkileşimli belgeler oluşturmak için yaygın bir gereksinimdir. Conholdate.Total for Java güçlü bir SDK’dır ve sunucu tarafında PDF manipülasyonunu basitleştirir. Bu rehberde, bir PDF’ye dikdörtgenler, elipsler ve çizgiler eklemeyi, görünümünü yapılandırmayı ve performans hususlarını ele almayı, tüm bunları net Java kod örnekleriyle öğreneceksiniz.

Java’da PDF’ye Şekil Ekleme Adımları

  1. Maven Deposu ve Bağımlılığı Ekle - Conholdate Maven deposunu ve conholdate-total bağımlılığını pom.xml dosyanıza ekleyin. Bu, PdfDocument ve ShapeFactory gibi SDK sınıflarının kullanılabilir olmasını sağlar.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. PDF Belgesini Yükle - PdfDocument sınıfının bir örneğini oluşturun ve hedef PDF dosyasını açın. Sınıf, API referansı içinde belgelenmiştir.
PdfDocument pdf = new PdfDocument();
pdf.open("input.pdf");
  1. Şekil Nesneleri Oluştur - ShapeFactory kullanarak dikdörtgen, elips veya çizgiler oluşturun. Konumu, boyutu ve görsel özellikleri ayarlayın.
// Rectangle
Shape rect = ShapeFactory.createRectangle(100, 150, 200, 100);
rect.setFillColor(Color.BLUE);
rect.setStrokeColor(Color.BLACK);
rect.setLineWidth(2);
// Ellipse
   Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
   ellipse.setFillColor(Color.GREEN);
   ellipse.setStrokeColor(Color.DARK_GRAY);
   ellipse.setLineWidth(1.5f);
// Line
   Shape line = ShapeFactory.createLine(100, 300, 500, 300);
   line.setStrokeColor(Color.RED);
   line.setLineWidth(3);
  1. Sayfaya Şekil Ekle - Belgeden istenen sayfayı alın ve her şekli grafik koleksiyonuna ekleyin.

    Page page = pdf.getPages().get_Item(0); // first page
    page.getGraphics().addShape(rect);
    page.getGraphics().addShape(ellipse);
    page.getGraphics().addShape(line);
    
  2. Güncellenmiş PDF’yi Kaydet - Tüm şekiller eklendikten sonra, belgeyi yeni bir dosyaya kaydedin.

    pdf.save("output.pdf");
    pdf.close();
    

Java’da PDF’ye Şekil Ekleme - Tam Kod Örneği

Aşağıdaki örnek, tüm adımları tek bir, çalıştırmaya hazır programda birleştirir.

import com.conholdate.total.pdf.*;
import com.conholdate.total.pdf.shapes.*;
import java.awt.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // PDF belgesini başlat
        PdfDocument pdf = new PdfDocument();
        pdf.open("input.pdf");
    }
}

// Dikdörtgen oluştur
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);

// Elips oluştur Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);


// Create line
        Shape line = ShapeFactory.createLine(100, 300, 500, 300);
        line.setStrokeColor(Color.RED);
        line.setLineWidth(3);

// İlk sayfaya şekiller ekle Page page = pdf.getPages().get_Item(0); page.getGraphics().addShape(rectangle); page.getGraphics().addShape(ellipse); page.getGraphics().addShape(line);

// Save the result pdf.save(“output.pdf”); pdf.close(); } }

<!--[COMPLETE_CODE_SNIPPET_END]-->

> **Not:** Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce dosya yollarını (`input.pdf`, `output.pdf`) gerçek dosya konumlarınıza göre güncellediğinizden, tüm gerekli bağımlılıkların düzgün kurulduğunu doğruladığınızdan ve geliştirme ortamınızda kapsamlı bir şekilde test ettiğinizden emin olun. Herhangi bir sorunla karşılaşırsanız, lütfen [resmi dokümantasyona](https://docs.conholdate.com/java/) bakın veya [destek ekibi](https://forum.conholdate.com/c/total/5) ile iletişime geçin.

## Java'da Kurulum ve Ayarlar
Conholdate.Total for Java'ı kullanmaya başlamak için, resmi siteden en son sürümü indirin ve daha önce gösterilen Maven bağımlılığını ekleyin. SDK, herhangi bir Java 8+ çalışma zamanında çalışır ve ek yerel kütüphanelere ihtiyaç duymaz.

- **İndirme URL'si:** [Conholdate.Total for Java Release](https://releases.conholdate.com/total/java/)  
- **Dokümantasyon:** Ayrıntılı kullanım talimatları, [resmi dokümantasyon](https://docs.conholdate.com/java/) içinde mevcuttur.  
- **Lisans:** [Geçici lisans sayfası](https://purchase.conholdate.com/temporary-license/) üzerinden geçici bir lisans edinebilir veya [fiyatlandırma sayfası](https://purchase.conholdate.com/pricing/total/family/) üzerinden tam fiyatlandırmayı görüntüleyebilirsiniz.

## Ana Özellikler ve Genel Bakış
### Java'da Conholdate.Total ile PDF'ye Şekil Ekleme
Conholdate.Total for Java, PDF içeriği oluşturma ve düzenleme için birleşik bir API sağlar. Şekil çizme işlevi vektör grafiklerle çalışır ve eklenen öğelerin herhangi bir yakınlaştırma seviyesinde net kalmasını sağlar. Temel primitive'leri (dikdörtgen, elips, çizgi) ve karmaşık yolları çizebilirsiniz.

### Conholdate.Total Özellikleri Bu Görev İçin Önemli
- **Cross‑platform compatibility:** Windows, Linux ve macOS sunucularında çalışır.  
- **High‑performance rendering:** Şekiller, yerel PDF içeriği oluşturan aynı motor kullanılarak işlenir, rasterleştirme önlenir.  
- **Full control over appearance:** Dolgu renkleri, çizgi renkleri, çizgi kalınlıkları, opaklık ve [blend](https://docs.fileformat.com/3d/blend/) modlarını ayarlayın.  
- **Layered graphics:** Şekilleri belirli katmanlara veya gruplara ekleyerek daha sonraki düzenlemeyi kolaylaştırın.

## Şekil Özelliklerini Optimum Render İçin Yapılandırma
Şekil eklerken, istenen görsel sonuca ulaşmak için aşağıdaki özellikleri göz önünde bulundurun:

- **Pozisyon ve Boyut:** Mutlak koordinatlar (nokta) veya sayfa boyutuna göre yüzde değerleri kullanın.  
- **Renkler:** SDK, `java.awt.Color` nesnelerini kabul eder. Şeffaflık için `new Color(r, g, b, alpha)` kullanın.  
- **Çizgi Genişliği:** Nokta cinsinden ölçülür; `1` değeri 1/72 inç'e eşittir.  
- **Opaklık ve Karışım Modu:** `setOpacity(float)` ve `setBlendMode(BlendMode)` ile ayarlayın.  
- **Döndürme ve Eğme:** Gelişmiş düzenler için `setRotation(double)` veya `setSkew(double, double)` aracılığıyla dönüşümler uygulayın.

Gelişmiş özelliklerin ayarlanmasına örnek:

<!--[CODE_SNIPPET_START]-->
```java
ellipse.setOpacity(0.7f);
ellipse.setBlendMode(BlendMode.MULTIPLY);
ellipse.setRotation(45);

PDF’lere Şekil Eklerken Performans Düşünceleri

Birçok vektör nesnesi eklemek işleme süresini ve bellek kullanımını artırabilir. Aşağıdaki yönergeleri izleyin:

  • Toplu Çizim: İlgili şekilleri sayfaya eklemeden önce tek bir grafik kapsayıcısında gruplayın.
  • Nesneleri Yeniden Kullan: Birden fazla sayfada aynı şekillere ihtiyacınız varsa, yeni örnekler oluşturmak yerine mevcut bir şekli kopyalayın.
  • Aşırı Ölçeklendirmeden Kaçının: Maliyetli raster dönüşümlerini önlemek için şekilleri nihai görüntü boyutunda tanımlayın.
  • Kaynakları Serbest Bırak: PdfDocument‘i hızlı bir şekilde kapatarak yerel kaynakları serbest bırakın.

Sonuç

Conholdate.Total for Java Java geliştiricilerine PDF belgelerine şekil eklemek için basit bir yol sunar; bu sayede zengin, etkileşimli raporlar ve faturalar oluşturabilirsiniz. Bu kılavuzdaki adımları, yapılandırma ipuçlarını ve performans yönergelerini izleyerek, vektör grafiklerini PDF iş akışınıza güvenle entegre edebilirsiniz. Üretim kullanımı için uygun bir lisans almayı unutmayın; değerlendirme için geçici bir lisans mevcuttur ve tam fiyatlandırma detayları fiyatlandırma sayfasında listelenmiştir.

SSS

PDF’de şekillere özel bir yazı tipi nasıl ekleyebilirim?
TrueType bir yazı tipini pdf.getFonts().addFont("MyFont.ttf") kullanarak gömebilir ve ardından setFont(myFont) ile bir şekle atayabilirsiniz. SDK, yazı tipinin son PDF’e gömülmesini sağlar.

Mevcut bir PDF’ye şekiller eklemek, mevcut içeriği kaybetmeden mümkün mü?
Evet. PDF’yi PdfDocument.open() ile açmak, tüm mevcut sayfaları ve nesneleri korur. Bir sayfanın grafik koleksiyonuna şekil eklemek yalnızca sayfayı genişletir; mevcut içeriği üzerine yazmaz.

Şekil ekledikten sonra hangi dosya formatlarına dışa aktarabilirim?
Conholdate.Total for Java PDF, PDF/A, PDF/X formatlarında kaydetmeyi ve ayrıca PNG, JPEG, ve BMP gibi görüntü formatlarını destekler. Gerekli olduğunda pdf.save("output.pdf") veya pdf.save("output.png", ImageSaveOptions.Png) kullanın.