<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>document processing java on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/vi/tag/document-processing-java/</link>
    <description>Recent content in document processing java on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>vi</language>
    <lastBuildDate>Wed, 14 Oct 2026 17:04:45 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/vi/tag/document-processing-java/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Văn bản gạch ngang trong Java</title>
      <link>https://blog-qa.conholdate.com/vi/total/strikethrough-text-in-java/</link>
      <pubDate>Wed, 14 Oct 2026 17:04:45 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/vi/total/strikethrough-text-in-java/</guid>
      <description>Tìm hiểu cách thêm văn bản gạch ngang trong Java bằng cách sử dụng Conholdate.Total for Java. Hướng dẫn này trình bày cách thiết lập, hướng dẫn chi tiết mã nguồn, cấu hình chính và các mẹo về hiệu năng.</description>
      <content:encoded><![CDATA[<p>Định dạng gạch ngang thường được yêu cầu để chỉ ra các phần bị xóa, sửa đổi hoặc các nhiệm vụ đã hoàn thành trong các tài liệu được tạo. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> cung cấp một SDK mạnh mẽ cho phép bạn thao tác với các tài liệu Word một cách lập trình. Trong hướng dẫn này, bạn sẽ học cách thêm văn bản gạch ngang trong Java, khám phá các tùy chọn cấu hình, xem các thực tiễn tốt nhất về hiệu năng, và chạy một ví dụ hoàn chỉnh mà bạn có thể điều chỉnh cho các dự án của mình.</p>
<h2 id="trước-khi-bắt-đầu-các-yêu-cầu-trước-và-cài-đặt">Trước Khi Bắt Đầu: Các Yêu Cầu Trước và Cài Đặt</h2>
<p>Để làm theo hướng dẫn này, bạn cần:</p>
<ul>
<li>Java 17 hoặc mới hơn được cài đặt trên máy phát triển của bạn.</li>
<li>Maven 3.6+ để quản lý phụ thuộc.</li>
<li>Một IDE như IntelliJ IDEA hoặc Eclipse.</li>
</ul>
<p>Thêm kho Maven của Conholdate và phụ thuộc SDK vào <code>pom.xml</code> của bạn:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;repositories&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.conholdate<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>conholdate-total<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>24.9<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;type&gt;</span>pom<span style="color:#f92672">&lt;/type&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>Tải xuống các tệp nhị phân SDK mới nhất từ <a href="https://releases.conholdate.com/total/java/">trang tải xuống</a> nếu bạn muốn cài đặt thủ công. Khi phụ thuộc đã được giải quyết, bạn đã sẵn sàng để bắt đầu lập trình. Phần tiếp theo sẽ hướng dẫn chi tiết từng bước để thêm văn bản gạch ngang trong Java.</p>
<h2 id="hướng-dẫn-từng-bước-để-gạch-ngang-văn-bản-trong-java">Hướng dẫn từng bước để gạch ngang văn bản trong Java</h2>
<h3 id="bước-1-tải-tài-liệu-nguồn">Bước 1: Tải tài liệu nguồn</h3>
<p>Đầu tiên, tạo một thể hiện <code>Document</code>. Nếu tệp đầu vào tồn tại, SDK sẽ tải nó; nếu không, một tài liệu trống mới sẽ được tạo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String inputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>Document doc<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>File inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> File<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">exists</span><span style="color:#f92672">())</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">);</span> <span style="color:#75715e">// loads existing DOCX
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#f92672">}</span> <span style="color:#66d9ef">else</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">();</span>          <span style="color:#75715e">// creates a new blank document
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    doc<span style="color:#f92672">.</span><span style="color:#a6e22e">removeAllChildren</span><span style="color:#f92672">();</span>       <span style="color:#75715e">// ensure it&#39;s empty
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>Lớp <code>Document</code> được tài liệu hoá trong <a href="https://reference.conholdate.com/java/">tài liệu API</a>.</p>
<h3 id="bước-2-viết-đoạn-văn-bình-thường">Bước 2: Viết đoạn văn bình thường</h3>
<p>Sử dụng <code>DocumentBuilder</code> để thêm một đoạn văn thông thường. Điều này cho thấy văn bản bình thường không bị ảnh hưởng bởi cài đặt gạch ngang.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>DocumentBuilder builder <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> DocumentBuilder<span style="color:#f92672">(</span>doc<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">moveToDocumentEnd</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">writeln</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;This is a normal paragraph.&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><h3 id="bước-3-áp-dụng-định-dạng-gạch-ngang">Bước 3: Áp dụng định dạng gạch ngang</h3>
<p>Bật cờ gạch ngang trên phông chữ của builder trước khi ghi văn bản có định dạng.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">writeln</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;This text is rendered with strikethrough.&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">false</span><span style="color:#f92672">);</span> <span style="color:#75715e">// reset for subsequent text
</span></span></span></code></pre></div><h3 id="bước-4-tìm-kiếm-và-áp-dụng-gạch-ngang-có-điều-kiện">Bước 4: Tìm kiếm và Áp dụng Gạch ngang có Điều kiện</h3>
<p>Lặp lại qua tất cả các đối tượng <code>Run</code>, tìm từ &ldquo;strike&rdquo; và áp dụng định dạng bằng chương trình.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>Paragraph para <span style="color:#f92672">:</span> <span style="color:#f92672">(</span>Iterable<span style="color:#f92672">&lt;</span>Paragraph<span style="color:#f92672">&gt;)</span> doc<span style="color:#f92672">.</span><span style="color:#a6e22e">getChildNodes</span><span style="color:#f92672">(</span>NodeType<span style="color:#f92672">.</span><span style="color:#a6e22e">PARAGRAPH</span><span style="color:#f92672">,</span> <span style="color:#66d9ef">true</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>Run run <span style="color:#f92672">:</span> <span style="color:#f92672">(</span>Iterable<span style="color:#f92672">&lt;</span>Run<span style="color:#f92672">&gt;)</span> para<span style="color:#f92672">.</span><span style="color:#a6e22e">getChildNodes</span><span style="color:#f92672">(</span>NodeType<span style="color:#f92672">.</span><span style="color:#a6e22e">RUN</span><span style="color:#f92672">,</span> <span style="color:#66d9ef">true</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        String text <span style="color:#f92672">=</span> run<span style="color:#f92672">.</span><span style="color:#a6e22e">getText</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>text <span style="color:#f92672">!=</span> <span style="color:#66d9ef">null</span> <span style="color:#f92672">&amp;&amp;</span> text<span style="color:#f92672">.</span><span style="color:#a6e22e">toLowerCase</span><span style="color:#f92672">().</span><span style="color:#a6e22e">contains</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;strike&#34;</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            run<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><h3 id="bước-5-lưu-tài-liệu">Bước 5: Lưu tài liệu</h3>
<p>Cuối cùng, ghi tài liệu đã chỉnh sửa vào đĩa ở định dạng <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a> .</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>doc<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">,</span> SaveFormat<span style="color:#f92672">.</span><span style="color:#a6e22e">DOCX</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><p>Sau khi lưu tài liệu, bạn có thể mở <code>output.docx</code> để xác nhận rằng định dạng gạch ngang xuất hiện như mong đợi.</p>
<h2 id="ví-dụ-hoạt-động-đầy-đủ-cho-văn-bản-gạch-ngang-trong-java">Ví dụ Hoạt động Đầy đủ cho Văn bản Gạch Ngang trong Java</h2>
<p>Đoạn mã sau đây minh họa quy trình hoàn chỉnh để thêm văn bản gạch ngang trong Java bằng Conholdate.Total.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.aspose.words.*<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.io.File<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">StrikethroughExample</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        String inputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        String outputPath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;output.docx&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Document doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">null</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            File inputFile <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> File<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>inputFile<span style="color:#f92672">.</span><span style="color:#a6e22e">exists</span><span style="color:#f92672">())</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">(</span>inputPath<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">}</span> <span style="color:#66d9ef">else</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Document<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>                doc<span style="color:#f92672">.</span><span style="color:#a6e22e">removeAllChildren</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>DocumentBuilder builder <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> DocumentBuilder<span style="color:#f92672">(</span>doc<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            builder<span style="color:#f92672">.</span><span style="color:#a6e22e">moveToDocumentEnd</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">writeln</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;This is a normal paragraph.&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            builder<span style="color:#f92672">.</span><span style="color:#a6e22e">writeln</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;This text is rendered with strikethrough.&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">false</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>Paragraph para <span style="color:#f92672">:</span> <span style="color:#f92672">(</span>Iterable<span style="color:#f92672">&lt;</span>Paragraph<span style="color:#f92672">&gt;)</span> doc<span style="color:#f92672">.</span><span style="color:#a6e22e">getChildNodes</span><span style="color:#f92672">(</span>NodeType<span style="color:#f92672">.</span><span style="color:#a6e22e">PARAGRAPH</span><span style="color:#f92672">,</span> <span style="color:#66d9ef">true</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>Run run <span style="color:#f92672">:</span> <span style="color:#f92672">(</span>Iterable<span style="color:#f92672">&lt;</span>Run<span style="color:#f92672">&gt;)</span> para<span style="color:#f92672">.</span><span style="color:#a6e22e">getChildNodes</span><span style="color:#f92672">(</span>NodeType<span style="color:#f92672">.</span><span style="color:#a6e22e">RUN</span><span style="color:#f92672">,</span> <span style="color:#66d9ef">true</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                    String text <span style="color:#f92672">=</span> run<span style="color:#f92672">.</span><span style="color:#a6e22e">getText</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>text <span style="color:#f92672">!=</span> <span style="color:#66d9ef">null</span> <span style="color:#f92672">&amp;&amp;</span> text<span style="color:#f92672">.</span><span style="color:#a6e22e">toLowerCase</span><span style="color:#f92672">().</span><span style="color:#a6e22e">contains</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;strike&#34;</span><span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                        run<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>                <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>doc<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span>outputPath<span style="color:#f92672">,</span> SaveFormat<span style="color:#f92672">.</span><span style="color:#a6e22e">DOCX</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>Exception e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">finally</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>doc <span style="color:#f92672">!=</span> <span style="color:#66d9ef">null</span><span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                doc <span style="color:#f92672">=</span> <span style="color:#66d9ef">null</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.conholdate.com/java/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.conholdate.com/c/total/5">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="tinh-chỉnh-các-tùy-chọn-kiểu-dáng-gạch-ngang">Tinh chỉnh các tùy chọn kiểu dáng gạch ngang</h2>
<p>SDK cho phép bạn kiểm soát các thuộc tính phông chữ bổ sung như màu sắc, kích thước và gạch chân trong khi vẫn giữ cờ gạch ngang được bật. Ví dụ, bạn có thể thay đổi màu của văn bản gạch ngang:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setColor</span><span style="color:#f92672">(</span>java<span style="color:#f92672">.</span><span style="color:#a6e22e">awt</span><span style="color:#f92672">.</span><span style="color:#a6e22e">Color</span><span style="color:#f92672">.</span><span style="color:#a6e22e">RED</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">getFont</span><span style="color:#f92672">().</span><span style="color:#a6e22e">setStrikeThrough</span><span style="color:#f92672">(</span><span style="color:#66d9ef">true</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>builder<span style="color:#f92672">.</span><span style="color:#a6e22e">writeln</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Important deletion highlighted in red.&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><p>Nếu bạn cần áp dụng cùng một kiểu cho nhiều đoạn văn bản, hãy xem xét việc tạo một thể hiện <code>Font</code> có thể tái sử dụng và gán nó cho mỗi <code>Run</code> để tránh việc đặt thuộc tính lặp lại.</p>
<h2 id="các-cân-nhắc-về-hiệu-năng-khi-render-gạch-ngang">Các cân nhắc về hiệu năng khi render gạch ngang</h2>
<ol>
<li><strong>Tái sử dụng đối tượng <code>Document</code></strong> - tải tài liệu một lần và thực hiện tất cả các sửa đổi trong một phiên duy nhất giúp giảm tải I/O.</li>
<li><strong>Thay đổi kiểu dáng hàng loạt</strong> - áp dụng cờ gạch ngang (<code>strike‑through</code>) cho một tập hợp <code>Paragraph</code> hoặc <code>Run</code> thay vì bật tắt cho từng ký tự.</li>
<li><strong>Tránh các lần duyệt không cần thiết</strong> - vòng lặp điều kiện tìm từ &ldquo;strike&rdquo; chỉ nên thực hiện khi bạn thực sự cần kiểu dáng động.</li>
<li><strong>Gửi luồng đầu ra khi có thể</strong> - đối với tài liệu lớn, sử dụng <code>doc.save(OutputStream, SaveFormat.DOCX)</code> để ghi trực tiếp vào luồng và tiết kiệm bộ nhớ.</li>
</ol>
<p>Những mẹo này giúp giữ mức sử dụng bộ nhớ thấp và thời gian thực thi nhanh, đặc biệt khi xử lý hàng trăm tài liệu trong một công việc batch.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Thêm văn bản gạch ngang trong Java rất đơn giản với <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>. API fluent của SDK cho phép bạn trộn các đoạn văn bản thường và có kiểu, áp dụng định dạng có điều kiện, và lưu kết quả ở các định dạng tiêu chuẩn công nghiệp. Hãy nhớ cấu hình phụ thuộc Maven của bạn, tái sử dụng các đối tượng tài liệu, và áp dụng kiểu một cách hiệu quả để đạt hiệu suất tối ưu. Đối với triển khai sản xuất, bạn sẽ cần một giấy phép hợp lệ; chi tiết giá cả có sẵn trên <a href="https://purchase.conholdate.com/pricing/total/family/">trang giá</a> và giấy phép tạm thời có thể được lấy từ <a href="https://purchase.conholdate.com/temporary-license/">trang giấy phép tạm thời</a>. Chúc lập trình vui vẻ!</p>
<h2 id="câu-hỏi-bạn-có-thể-có">Câu hỏi bạn có thể có</h2>
<ul>
<li>
<p><strong>Làm thế nào để áp dụng văn bản gạch ngang trong Java mà không cần thiết lập cờ thủ công cho mỗi lần chạy?</strong><br>
Sử dụng <code>DocumentBuilder.getFont().setStrikeThrough(true)</code> trước khi viết đoạn văn. Cờ sẽ vẫn hoạt động cho đến khi bạn đặt lại, cho phép bạn viết nhiều dòng với cùng một kiểu.</p>
</li>
<li>
<p><strong>Có thể tự động gạch ngang mọi lần xuất hiện của một từ khóa không?</strong><br>
Có. Duyệt qua từng <code>Run</code> như trong hướng dẫn, kiểm tra <code>run.getText()</code> để tìm từ khóa, và gọi <code>run.getFont().setStrikeThrough(true)</code> khi tìm thấy khớp.</p>
</li>
<li>
<p><strong>Các định dạng tài liệu nào giữ lại gạch ngang khi lưu?</strong>  DOCX, <a href="https://docs.fileformat.com/word-processing/doc/">DOC</a>, <a href="https://docs.fileformat.com/word-processing/rtf/">RTF</a>, và các định dạng văn bản phong phú khác giữ lại thuộc tính gạch ngang. Tham khảo <a href="https://docs.conholdate.com/java/">tài liệu chính thức</a> để có danh sách đầy đủ các định dạng được hỗ trợ.</p>
</li>
<li>
<p><strong>Việc áp dụng nhiều kiểu gạch ngang sẽ làm chậm quá trình xử lý các tệp lớn không?</strong><br>
Tác động là tối thiểu nếu bạn tuân theo các mẹo hiệu năng: tái sử dụng đối tượng <code>Document</code>, thực hiện thay đổi kiểu theo lô, và tránh các lần duyệt lặp lại không cần thiết. Điều này giữ mức sử dụng bộ nhớ thấp và tăng tốc quá trình xử lý.</p>
</li>
</ul>
<h2 id="bài-viết-liên-quan">Bài viết liên quan</h2>
<ul>
<li><a href="https://blog.conholdate.com/vi/total/rotate-image-in-java/">Xoay hình ảnh trong Java</a></li>
<li><a href="https://blog.conholdate.com/vi/total/add-text-to-pdf-in-java/">Thêm văn bản vào PDF trong Java</a></li>
<li><a href="https://blog.conholdate.com/vi/total/convert-pdf-to-png-in-java/">Chuyển đổi PDF sang PNG trong Java</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
