La formattazione barrata è spesso necessaria per indicare cancellazioni, revisioni o attività completate all’interno di documenti generati. Conholdate.Total for Java fornisce un SDK robusto che consente di manipolare i documenti Word programmaticamente. In questa guida imparerai come aggiungere testo barrato in Java, esplorare le opzioni di configurazione, vedere le migliori pratiche di prestazioni e eseguire un esempio completo che potrai adattare ai tuoi progetti.

Prima di Iniziare: Prerequisiti e Installazione

Per seguire questo tutorial è necessario:

  • Java 17 o versioni successive installate sulla tua macchina di sviluppo.
  • Maven 3.6+ per la gestione delle dipendenze.
  • Un IDE come IntelliJ IDEA o Eclipse.

Aggiungi il repository Maven di Conholdate e la dipendenza SDK al tuo pom.xml:

<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>

Scarica i binari SDK più recenti dalla pagina di download se preferisci un’installazione manuale. Una volta risolta la dipendenza, sei pronto per iniziare a programmare. La sezione successiva illustra ogni passaggio per aggiungere testo barrato in Java.

Guida passo-passo per il testo barrato in Java

Passo 1: Carica il documento di origine

Per prima cosa, crea un’istanza di Document. Se il file di input esiste, l’SDK lo carica; altrimenti viene creato un nuovo documento vuoto.

String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
    doc = new Document(inputPath); // loads existing DOCX
} else {
    doc = new Document();          // creates a new blank document
    doc.removeAllChildren();       // ensure it's empty
}

La classe Document è documentata nella riferimento API.

Passo 2: Scrivi un paragrafo normale

Usa DocumentBuilder per aggiungere un paragrafo normale. Questo dimostra che il testo normale non è influenzato dalle impostazioni di barratura.

DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");

Passo 3: Applicare la formattazione barrata

Abilita il flag di barrato sul font del builder prima di scrivere il testo con stile.

builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text

Passo 4: Cerca e applica il barrato condizionale

Itera attraverso tutti gli oggetti Run, trova la parola “strike” e applica la formattazione programmaticamente.

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
    for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
        String text = run.getText();
        if (text != null && text.toLowerCase().contains("strike")) {
            run.getFont().setStrikeThrough(true);
        }
    }
}

Passo 5: Salva il documento

Infine, scrivi il documento modificato su disco in formato DOCX.

String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);

Con il documento salvato, puoi aprire output.docx per verificare che lo stile barrato appaia come previsto.

Esempio completo funzionante per il testo barrato Java

Il seguente codice dimostra il flusso di lavoro completo per aggiungere testo barrato in Java utilizzando Conholdate.Total.

import com.aspose.words.*;

import java.io.File;

public class StrikethroughExample {
    public static void main(String[] args) {
        String inputPath = "input.docx";
        String outputPath = "output.docx";

Document doc = null;
        try {
            File inputFile = new File(inputPath);
            if (inputFile.exists()) {
                doc = new Document(inputPath);
            } else {
                doc = new Document();
                doc.removeAllChildren();
            }

DocumentBuilder builder = new DocumentBuilder(doc);
            builder.moveToDocumentEnd();

builder.writeln("This is a normal paragraph.");

builder.getFont().setStrikeThrough(true);
            builder.writeln("This text is rendered with strikethrough.");
            builder.getFont().setStrikeThrough(false);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
                for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
                    String text = run.getText();
                    if (text != null && text.toLowerCase().contains("strike")) {
                        run.getFont().setStrikeThrough(true);
                    }
                }
            }

doc.save(outputPath, SaveFormat.DOCX);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (doc != null) {
                doc = null;
            }
        }
    }
}

Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Regolazione fine delle opzioni di formattazione del barrato

L’SDK consente di controllare attributi aggiuntivi del carattere come colore, dimensione e sottolineatura mantenendo attiva l’opzione barrato. Ad esempio, è possibile modificare il colore del testo barrato:

builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");

Se hai bisogno di applicare lo stesso stile a molte esecuzioni, considera la creazione di un’istanza Font riutilizzabile e assegnala a ciascun Run per evitare impostazioni ripetitive delle proprietà.

Considerazioni sulle prestazioni per il rendering del testo barrato

  1. Riutilizzare l’oggetto Document - caricare un documento una sola volta ed eseguire tutte le modifiche in un’unica sessione riduce il sovraccarico I/O.
  2. Modifiche di stile in batch - applicare il flag di barrato a una collezione di Paragraph o Run anziché attivarlo per ogni carattere.
  3. Evitare attraversamenti non necessari - il ciclo condizionale che cerca la parola “strike” dovrebbe essere eseguito solo quando è realmente necessario uno styling dinamico.
  4. Trasmettere l’output quando possibile - per documenti di grandi dimensioni, utilizzare doc.save(OutputStream, SaveFormat.DOCX) per scrivere direttamente su uno stream e conservare la memoria.

Questi suggerimenti aiutano a mantenere basso l’uso della memoria e veloce il tempo di esecuzione, soprattutto quando si elaborano centinaia di documenti in un lavoro batch.

Considerazioni finali

Aggiungere testo barrato in Java è semplice con Conholdate.Total for Java. L’API fluida dell’SDK ti consente di mescolare paragrafi normali e formattati, applicare formattazione condizionale e salvare i risultati in formati standard del settore. Ricorda di configurare la tua dipendenza Maven, riutilizzare gli oggetti documento e applicare gli stili in modo efficiente per ottenere prestazioni ottimali. Per le distribuzioni in produzione è necessaria una licenza valida; i dettagli dei prezzi sono disponibili nella pagina dei prezzi e una licenza temporanea può essere ottenuta dalla pagina della licenza temporanea. Buona programmazione!

Domande che potresti avere

  • Come posso applicare il testo barrato in Java senza impostare manualmente il flag per ogni run?
    Usa DocumentBuilder.getFont().setStrikeThrough(true) prima di scrivere il paragrafo. Il flag rimane attivo fino a quando non lo resetti, consentendoti di scrivere più righe con lo stesso stile.

  • Posso barrare automaticamente ogni occorrenza di una parola chiave?
    Sì. Itera su ogni Run come mostrato nella guida, controlla run.getText() per la parola chiave e chiama run.getFont().setStrikeThrough(true) quando trovi una corrispondenza.

  • Quali formati di documento conservano il barrato quando salvati?
    DOCX, DOC, RTF, e altri formati rich‑text conservano l’attributo di barrato. Consulta la documentazione ufficiale per un elenco completo dei formati supportati.

  • L’applicazione di molti stili barrati rallenterà l’elaborazione di file di grandi dimensioni?
    L’impatto è minimo se segui i consigli sulle prestazioni: riutilizza l’istanza Document, raggruppa le modifiche di stile e evita attraversamenti ridondanti. Questo mantiene basso l’uso della memoria e velocizza l’elaborazione.

Articoli correlati