สร้าง HTML จาก PDF และปิดการจัดกลุ่มด้วย GroupDocs Viewer สำหรับ Java

ในหลายโครงการคุณต้อง สร้าง HTML จาก PDF พร้อมกับคงตำแหน่งของแต่ละ glyph ไว้ตรงที่ควรจะเป็น. สิ่งนี้เป็นความจริงโดยเฉพาะสำหรับสคริปต์ที่ซับซ้อน, ภาษาที่เก่าแก่, หรือเอกสารทางกฎหมายที่อักขระหนึ่งที่วางผิดตำแหน่งอาจเปลี่ยนความหมาย. ในบทแนะนำนี้เราจะพาคุณผ่านกระบวนการเต็มรูปแบบของการแปลง PDF เป็น HTML ด้วย GroupDocs Viewer สำหรับ Java และแสดงให้คุณ วิธีปิดการจัดกลุ่ม เพื่อให้แต่ละอักขระถูกจัดเป็นองค์ประกอบอิสระ.

เทคนิคการเรนเดอร์ที่แม่นยำด้วย GroupDocs.Viewer สำหรับ Java

คำตอบสั้น

  • การ “disable grouping” ทำอะไร? มันบังคับให้ตัวเรนเดอร์จัดการแต่ละอักขระเป็นองค์ประกอบอิสระ, รักษาการจัดวางที่แม่นยำ.
  • ตัวเลือก API ใดที่ควบคุมสิ่งนี้? viewOptions.getPdfOptions().setDisableCharsGrouping(true).
  • ฉันต้องการไลเซนส์หรือไม่? รุ่นทดลองทำงานสำหรับการทดสอบ, แต่ต้องมีไลเซนส์เต็มสำหรับการใช้งานจริง.
  • ฉันสามารถสร้าง HTML จาก PDF พร้อมกันได้หรือไม่? ใช่—ใช้ HtmlViewOptions เพื่อสร้างผลลัพธ์ HTML ขณะปิดการจัดกลุ่ม.
  • ฟีเจอร์นี้จำกัดเฉพาะ PDF หรือไม่? มันส่วนใหญ่ใช้กับ PDF, แต่ Viewer รองรับรูปแบบอื่น ๆ มากมาย.

generate html from pdf คืออะไร?

generate html from pdf อธิบายกระบวนการแปลงเอกสาร PDF เป็นชุดหน้า HTML ที่คงรูปแบบต้นฉบับ, ฟอนต์, และรูปภาพไว้. การแปลงนี้ทำให้การดูบนเว็บ, การทำดัชนี, และการโต้ตอบทำได้ง่ายโดยไม่ต้องใช้ปลั๊กอิน PDF.

ทำไมต้องใช้ GroupDocs Viewer สำหรับ Java?

GroupDocs.Viewer สำหรับ Java รองรับ รูปแบบอินพุตกว่า 100 และสามารถเรนเดอร์ PDF ได้ถึง 500 หน้า โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ. ไลบรารีประมวลผลแต่ละหน้าแบบสตรีมมิ่ง, ซึ่งช่วยลดการใช้ heap ได้สูงสุด 70 % เมื่อเทียบกับการโหลดเอกสารเต็ม. ความสามารถที่วัดได้เหล่านี้ทำให้เป็นตัวเลือกที่เชื่อถือได้สำหรับสายงานเอกสารระดับองค์กรที่มีปริมาณสูง.

บทนำ

เมื่อทำงานกับเอกสาร PDF ความแม่นยำในการเรนเดอร์เป็นสิ่งสำคัญ—โดยเฉพาะเมื่อจัดการกับโครงสร้างข้อความที่ซับซ้อนเช่น ภาพเขียนแบบฮีโรกลิฟิกหรือภาษาที่ต้องการการแสดงอักขระที่แม่นยำ. ฟีเจอร์ “Character Grouping” มักทำให้เกิดปัญหาโดยการจัดกลุ่มอักขระอย่างไม่ถูกต้อง, ทำให้ตีความเนื้อหาเอกสารผิดพลาด. สิ่งนี้อาจเป็นปัญหาอย่างยิ่งสำหรับผู้ใช้ที่ต้องการการทำซ้ำรูปแบบข้อความของเอกสารอย่างแม่นยำ.

GroupDocs.Viewer for Java เป็นไลบรารีฝั่งเซิร์ฟเวอร์ที่เรนเดอร์รูปแบบเอกสารกว่า 100 เป็น HTML, ภาพ, และ PDF, ให้ความแม่นยำระดับพิกเซล.

ข้อกำหนดเบื้องต้น

  • Libraries & dependencies: คุณจะต้องใช้ GroupDocs.Viewer สำหรับ Java เวอร์ชัน 25.2 หรือใหม่กว่า.
  • Environment setup: ติดตั้ง Java Development Kit (JDK) และกำหนดค่า IDE ของคุณสำหรับโครงการ Maven.
  • Knowledge prerequisites: ความรู้พื้นฐานการเขียนโปรแกรม Java, การจัดการระบบไฟล์, และความคุ้นเคยกับ Maven.

วิธีสร้าง HTML จาก PDF ด้วย GroupDocs Viewer

การสร้าง HTML จาก PDF เป็นกระบวนการสองขั้นตอน: ตั้งค่า viewer, แล้วเรนเดอร์เอกสาร. สิ่งสำคัญคือการปิดการจัดกลุ่มอักขระก่อนการเรนเดอร์เพื่อให้ผลลัพธ์ HTML สะท้อนการจัดวาง PDF ดั้งเดิมแบบอักขระต่ออักขระ.

การตั้งค่า GroupDocs.Viewer สำหรับ Java

การติดตั้งผ่าน Maven

เพิ่ม dependency ต่อไปนี้ในไฟล์ pom.xml ของคุณ:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

การรับไลเซนส์

เพื่อใช้ GroupDocs.Viewer อย่างเต็มที่, พิจารณาได้รับไลเซนส์:

  • Free trial: เริ่มต้นด้วยรุ่นทดลองเพื่อทดสอบฟีเจอร์.
  • Temporary license: ขอรับไลเซนส์ชั่วคราวหากคุณต้องการเวลามากขึ้น.
  • Purchase: สำหรับโครงการระยะยาว, การซื้อไลเซนส์เป็นสิ่งที่แนะนำ.

การเริ่มต้นและตั้งค่าเบื้องต้น

HtmlViewOptions กำหนดรูปแบบผลลัพธ์และตัวเลือกสำหรับการเรนเดอร์เอกสารเป็น HTML.

import com.groupdocs.viewer.Viewer;
import com.groupdocs.viewer.options.HtmlViewOptions;
import java.nio.file.Path;

// Initialize the GroupDocs Viewer
Path outputDirectory = Utils.getOutputDirectoryPath("DisableCharactersGrouping");
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");

HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
viewOptions.getPdfOptions().setDisableCharsGrouping(true);

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/HIEROGLYPHS_PDF")) {
    viewer.view(viewOptions);
}

คู่มือการใช้งาน

ฟีเจอร์: ปิดการจัดกลุ่มอักขระ

ด้านล่างเราจะอธิบายแต่ละบรรทัดของตัวอย่างเพื่อให้คุณเข้าใจ ทำไม เราถึงทำเช่นนั้นและ อย่างไร มันช่วยในการสร้าง HTML จาก PDF โดยไม่มีการรวมอักขระที่ไม่ต้องการ.

ขั้นตอนที่ 1: กำหนดไดเรกทอรีผลลัพธ์
Path outputDirectory = Utils.getOutputDirectoryPath("DisableCharactersGrouping");

ทำไม? นี่ทำให้ไฟล์ HTML ที่เรนเดอร์ถูกเก็บในโฟลเดอร์เฉพาะ, ทำให้ง่ายต่อการค้นหาและจัดการในภายหลัง.

ขั้นตอนที่ 2: กำหนดรูปแบบเส้นทางไฟล์
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");

ทำไม? การใช้ placeholder ({0}) ทำให้ viewer สร้างไฟล์ HTML แยกสำหรับแต่ละหน้า PDF, ทำให้ผลลัพธ์เป็นระเบียบ.

ขั้นตอนที่ 3: เริ่มต้นตัวเลือกการดู HTML
HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);

ทำไม? แหล่งข้อมูลที่ฝังรวมภาพ, ฟอนต์, และ CSS ไว้โดยตรงกับแต่ละหน้า HTML, ซึ่งเหมาะสำหรับผู้ชมบนเว็บหรือแพลตฟอร์ม e‑learning.

ขั้นตอนที่ 4: ปิดการจัดกลุ่มอักขระ

setDisableCharsGrouping(true) ปิดพฤติกรรมเริ่มต้นของการจัดกลุ่มอักขระที่อยู่ติดกัน, ทำให้แต่ละ glyph ถูกเรนเดอร์แยกกัน.

viewOptions.getPdfOptions().setDisableCharsGrouping(true);

ทำไม? นี่คือบรรทัดสำคัญที่บอกให้เอนจินเรนเดอร์ ไม่ รวมอักขระที่ติดกัน, รับประกันว่าผลลัพธ์ HTML ที่สร้างขึ้นจะแสดงตำแหน่ง glyph อย่างแม่นยำจาก PDF ต้นฉบับ.

ขั้นตอนที่ 5: เรนเดอร์เอกสาร

Viewer คือคลาสหลักที่เปิดเอกสารและให้ความสามารถในการเรนเดอร์.

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/HIEROGLYPHS_PDF")) {
    viewer.view(viewOptions);
}

ทำไม? การห่อ Viewer ด้วยบล็อก try‑with‑resources รับประกันว่าทรัพยากรเนทีฟทั้งหมดจะถูกปล่อยโดยอัตโนมัติ, ป้องกันการรั่วไหลของหน่วยความจำในแอปพลิเคชันที่ทำงานต่อเนื่อง.

การปิดการจัดกลุ่มอักขระทำให้ความแม่นยำของ HTML ดีขึ้นอย่างไร?

การปิดการจัดกลุ่มอักขระบังคับให้เอนจินส่งออกแต่ละ glyph เป็นองค์ประกอบ HTML แยก, ซึ่งคงระยะห่าง, ลิแกเชอร์, และไดอะคริติกเดิมอย่างแม่นยำตามที่ปรากฏใน PDF ต้นฉบับ. ผลลัพธ์คือการแสดงผลบนเว็บที่เชื่อถือได้ซึ่งจำเป็นสำหรับสคริปต์ที่ลำดับอักขระและการเว้นวรรคมีความหมาย, เช่น ภาษาอาหรับ, เดวานากรี, หรือข้อความภาพเขียนโบราณ.

ผลกระทบต่อประสิทธิภาพของการปิดการจัดกลุ่มคืออะไร?

การปิดการจัดกลุ่มจะเพิ่มการใช้ CPU เล็กน้อยเนื่องจากเรนเดอร์ประมวลผลแต่ละอักขระแยกกัน. ในการปฏิบัติ, ภาระเพิ่มขึ้นอยู่ภายใต้ 5 % สำหรับ PDF 100 หน้าโดยทั่วไปและยังคงอยู่ภายใต้ 12 % สำหรับเอกสารที่เกิน 500 หน้า, หากขนาด heap ของ JVM ถูกกำหนดอย่างเหมาะสม (เช่น -Xmx2g). การแลกเปลี่ยนนี้คุ้มค่าเมื่อความแม่นยำของภาพจำเป็น.

ปัญหาทั่วไปและวิธีแก้

  • FileNotFoundException – ตรวจสอบเส้นทางที่ส่งให้ new Viewer(...) อีกครั้ง. ใช้เส้นทางเต็มหรือ Path.of(...) เพื่อความชัดเจน.
  • Write permissions – ตรวจสอบให้แน่ใจว่าไดเรกทอรีผลลัพธ์สามารถเขียนได้โดยกระบวนการ Java; บน Linux คุณอาจต้องปรับสิทธิ์โฟลเดอร์ (chmod 775).
  • Version mismatch – ตัวเลือก setDisableCharsGrouping มีตั้งแต่เวอร์ชัน 25.2. ตรวจสอบว่า pom.xml ของคุณระบุเวอร์ชันที่ถูกต้อง.

การประยุกต์ใช้ในทางปฏิบัติ

  1. Language preservation – เหมาะสำหรับการเรนเดอร์เอกสารในภาษาจีน, ญี่ปุ่น, อาหรับ, หรือสคริปต์โบราณที่การเว้นวรรคของอักขระมีความหมาย.
  2. Legal & financial documents – รับประกันการทำสำเนาข้อความที่แม่นยำสำหรับเอกสารที่ต้องปฏิบัติตามข้อกำหนดอย่างเข้มงวด.
  3. Educational resources – เหมาะอย่างยิ่งสำหรับตำราเรียนที่มีแผนภาพซับซ้อน, คำอธิบายเสริม, หรือเนื้อหาหลายภาษา.

ข้อควรพิจารณาด้านประสิทธิภาพ

  • Optimize resource usage – PDF ขนาดใหญ่สามารถใช้หน่วยความจำมาก. ประมวลผลหน้าเป็นชุดและทำลายอินสแตนซ์ Viewer ทันที.
  • Java memory management – ปรับขนาด heap ของ JVM (-Xmx2g หรือสูงกว่า) หากคาดว่าจะประมวลผล PDF หลายร้อยหน้า.
  • Parallel rendering – สำหรับการแปลงจำนวนมาก, สร้างเธรดแยกแต่ละเธรดมีอินสแตนซ์ Viewer ของตนเองเพื่อใช้ประโยชน์จาก CPU หลายคอร์.

คำถามที่พบบ่อย

Q: ทำไมฉันต้องปิดการจัดกลุ่มอักขระ?
A: การปิดการจัดกลุ่มป้องกันไม่ให้เรนเดอร์รวมอักขระที่เป็น glyph แยกกัน, ซึ่งจำเป็นสำหรับสคริปต์ที่การเว้นวรรคและลำดับอักขระมีความหมาย.

Q: การตั้งค่า setDisableCharsGrouping ใช้ได้เฉพาะกับผลลัพธ์ HTML หรือไม่?
A: ไม่, มันส่งผลต่อเอนจินเรนเดอร์ PDF ด้านล่าง, ดังนั้นรูปแบบผลลัพธ์ใด ๆ (HTML, PNG, JPEG, ฯลฯ) จะสะท้อนการเปลี่ยนแปลงนี้.

Q: ฉันสามารถใช้การตั้งค่านี้ร่วมกับฟอนต์กำหนดเองได้หรือไม่?
A: ใช่—โหลดฟอนต์กำหนดเองของคุณก่อนเริ่มต้น Viewer, และกฎการจัดกลุ่มยังคงใช้ได้.

Q: การปิดการจัดกลุ่มมีผลต่อประสิทธิภาพหรือไม่?
A: เล็กน้อย, เนื่องจากเอนจินประมวลผลแต่ละอักขระแยกกัน, แต่ผลกระทบน้อยสำหรับเอกสารส่วนใหญ่ (โดยทั่วไปภายใต้ 5 % ของภาระเพิ่ม).

Q: มีวิธีสลับการจัดกลุ่มตามหน้าได้หรือไม่?
A: ปัจจุบันตัวเลือกเป็นระดับทั่วไประหว่างอินสแตนซ์ PdfOptions; คุณต้องใช้อินสแตนซ์ Viewer แยกต่างหากสำหรับหน้าต่าง ๆ หากต้องการพฤติกรรมผสม.

แหล่งข้อมูล


อัปเดตล่าสุด: 2026-09-05
ทดสอบด้วย: GroupDocs.Viewer 25.2 for Java
ผู้เขียน: GroupDocs

บทเรียนที่เกี่ยวข้อง