Büyük Word raporları veya kullanıcıların hızlıca göz atması gereken kılavuzlar oluştururken gezinilebilir bir içindekiler tablosu oluşturmak çok önemlidir. Conholdate.Total for Java güçlü bir SDK sunar ve DOCX dosyalarıyla doğrudan Java uygulamalarından çalışmayı basitleştirir. Bu adım‑adım rehberde, kurulum, kod açıklaması ve en iyi uygulamaları kapsayan, Java’da bir Word belgesine içindekiler tablosu eklemeyi öğreneceksiniz.

Java’da Word Belgesine İçindekiler Tablosu Eklemek için Tam Çalışan Örnek

Aşağıdaki örnek, Conholdate.Total for Java kullanarak bir DOCX dosyasına içindekiler tablosu eklemeyi göstermektedir.

import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.BreakType;
import com.aspose.words.StyleIdentifier;

public class AddTableOfContentsExample {
    public static void main(String[] args) throws Exception {
        // Directory where the output document will be saved
        String dataDir = "output/";

// Create a new document and a builder to work with it
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a table of contents field at the current cursor position.
        // "\o \"1-3\" \h \z \u" includes heading levels 1-3, makes entries
        // clickable hyperlinks, hides tab leaders in Web layout, and uses
        // outline levels applied to non-heading styles.
        builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");

// Start the actual document content on the second page.
        builder.insertBreak(BreakType.PAGE_BREAK);

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("Heading 1");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 1.1");
        builder.writeln("Heading 1.2");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("Heading 2");
        builder.writeln("Heading 3");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 3.1");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_3);
        builder.writeln("Heading 3.1.1");
        builder.writeln("Heading 3.1.2");
        builder.writeln("Heading 3.1.3");

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        builder.writeln("Heading 3.2");
        builder.writeln("Heading 3.3");

// The newly inserted table of contents is initially empty.
        // It needs to be populated by updating the fields in the document.
        doc.updateFields();

doc.save(dataDir + "TableOfContents.docx");
    }
}

Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce çıktı dizinini (dataDir) gerçek dosya konumunuza göre güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi belgelere bakın veya destek ekibi ile iletişime geçin.

Java Kodunda Word Belgesine İçindekiler Tablosu Ekleme Anlayışı

Aşağıda örnek kod tarafından gerçekleştirilen ana adımların bir özeti bulunmaktadır:

  1. Belgeyi ve bir oluşturucuyu oluşturun - Document bellek içi Word dosyasını temsil eder ve DocumentBuilder ona içerik ve alan eklemek için yöntemler sağlar.

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. TOC alanını ekle - insertTableOfContents imleç konumunda bir TOC alanı yazar. Anahtar dizesi davranışını kontrol eder: \o "1-3" başlık seviyeleri 1’den 3’e kadar dahil eder, \h girişleri tıklanabilir hiperlink yapar, \z Web düzeni görünümünde sekme liderlerini ve sayfa numaralarını gizler, ve \u paragraflara uygulanan anahat seviyesini kullanır.

    builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");
    
  3. İçeriği yeni bir sayfada başlat - insertBreak(BreakType.PAGE_BREAK) gerçek belge gövdesini TOC’dan sonraki sayfaya iterek, içindekiler tablosunun kendi sayfasına sahip olmasını sağlar.

    builder.insertBreak(BreakType.PAGE_BREAK);
    
  4. Başlık stili içeriği ekleyin - setStyleIdentifier özelliğini builder’ın paragraf formatında HEADING_1, HEADING_2 veya HEADING_3 olarak ayarlayıp writeln metodunu çağırmadan önce ayarlamak, ilgili yerleşik başlık stiline sahip paragraflar oluşturur; bu başlıklar TOC alanı tarafından giriş olarak taranır.

builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
builder.writeln("Heading 1");

Ayrıntılı API referansı, API Referansı sayfasında mevcuttur.

  1. Alanları güncelle ve kaydet - doc.updateFields() başlıklar mevcut olduğu için TOC’yi girişler ve sayfa numaralarıyla doldurur ve doc.save belgeyi diske yazar.
    doc.updateFields();
    doc.save(dataDir + "TableOfContents.docx");
    

Conholdate.Total for Java’ı Kurma ve Yapılandırma

Conholdate Maven deposunu ve SDK bağımlılığını pom.xml dosyanıza ekleyin:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

En son SDK paketini indirme sayfasından indirin. SDK, Java 8 veya daha yenisini gerektirir ve herhangi bir standart JVM’de çalışır. Ek bir çalışma zamanı bileşenine ihtiyaç yok.

Word TOC Oluşturma için En İyi Uygulamalar Java ile

  • Tutarlı başlık stilleri kullanın - TOC, yerleşik başlık seviyeleri (Başlık 1, Başlık 2, vb.) ile biçimlendirilmiş paragrafları algılar. Kaynak belgenizin güvenilir giriş oluşturması için bu stilleri kullandığından emin olun.
  • Başlık derinliğini sınırlayın - Çok fazla seviyenin eklenmesi TOC’yi yönetilemez hale getirebilir. Tipik raporlar, örnekteki \o "1-3" anahtarında gösterildiği gibi 1‑3 seviyelerini kullanır.
  • Köprüleri etkinleştirin - \h anahtarını eklemek tıklanabilir girişler oluşturur ve son belgede gezinmeyi iyileştirir.
  • Eklemeden sonra her zaman updateFields çağırın - Yeni eklenen bir TOC alanı, doc.updateFields() çalıştırılana kadar boş olur; bu yüzden tüm başlık içeriği eklendikten sonra çağırın.
  • Eklemeden sonra doğrulayın - Oluşturulan DOCX dosyasını açın ve alanları güncelleyin (Ctrl +A, F9) sayfa sayılarının doğru olduğunu, özellikle sonraki düzenlemelerden sonra, onaylamak için.
  • Anahtar dizesini yeniden kullanın - Bir toplu işlemde birden fazla belge oluşturuyorsanız, anahtar dizesini bir kez oluşturup çağrılar arasında yeniden kullanın; bu, biçimlendirmeyi tutarlı tutar.

Sonuç

Java’da bir Word belgesine içindekiler tablosu eklemek, Conholdate.Total for Java ile oldukça basit hale gelir. Bir belge oluşturup, uygun anahtarlarla bir TOC alanı ekleyerek, başlık stili içeriği ekleyip updateFields metodunu çağırarak, profesyonel raporlar ve kılavuzlar oluşturmayı otomatikleştirebilirsiniz. SDK’yı kurmayı, en iyi uygulama önerilerini takip etmeyi ve oluşturulan içindekiler tablosunu hedef ortamınızda test etmeyi unutmayın. Üretim dağıtımları için lisanslı bir kopyaya ihtiyacınız olacak; fiyatlandırma detayları fiyatlandırma sayfasında mevcuttur ve geçici bir lisans geçici lisans sayfasından alınabilir.

SSS

  • Java’da bir Word belgesine içindekiler tablosu eklemenin en basit yolu nedir? builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u") metodunu çağırın, başlık stilli paragraflar ekleyin, ardından kaydetmeden önce doc.updateFields() metodunu çağırın; kod örneğinde gösterildiği gibi.

  • TOC’da hangi başlık seviyelerinin görüneceğini nasıl kontrol edebilirim? insertTableOfContents‘a geçirilen dizedeki \o anahtarının içindeki seviye aralığını değiştirin; örneğin sadece 1 ve 2 seviyelerini dahil etmek için \o "1-2".

  • Daha sonra doldurulacak bir Word şablonu için TOC oluşturmak mümkün mü? Evet. Dinamik içeriği doldurmadan önce TOC alanını şablon dosyasına ekleyin; başlıklar eklendikten sonra updateFields() çağırmak, TOC’yi otomatik olarak doldurur.

  • Bu SDK’yı kullanmak için internet bağlantısına ihtiyacım var mı? Hayır. Conholdate.Total for Java, sunucunuzda veya masaüstünüzde harici hizmet çağrıları olmadan çalışan yerel bir kütüphanedir.

Read More