Skip to content

Latest commit

 

History

History
599 lines (444 loc) · 33.1 KB

File metadata and controls

599 lines (444 loc) · 33.1 KB
categories
Java Development
date 2026-02-08
description เรียนรู้วิธีสร้างการแสดงตัวอย่าง PDF ด้วย Java โดยใช้ GroupDocs.Comparison คู่มือแบบขั้นตอนต่อขั้นตอนพร้อมตัวอย่างโค้ดสำหรับการแสดงตัวอย่าง PDF, Word, Excel.
keywords Java document preview generator, generate document thumbnails Java, Java PDF preview creation, document image conversion Java, Java library for document thumbnails
lastmod 2025-01-02
linktitle Java Document Preview Generator
tags
document-processing
java-library
preview-generation
pdf-thumbnails
title สร้างตัวอย่าง PDF ด้วย Java – เครื่องสร้างตัวอย่างเอกสาร Java
type docs
url /th/java/preview-generation/groupdocs-comparison-java-generate-previews/
weight 1

สร้างตัวอย่าง PDF ด้วย Java – ตัวสร้างตัวอย่างเอกสาร Java

คำแนะนำ

ต้องการสร้างตัวอย่างเอกสารในแอปพลิเคชัน Java ของคุณหรือไม่? ไม่ว่าคุณจะกำลังสร้างระบบจัดการเอกสาร, ตัวเรียกดูไฟล์, หรือเครื่องมือทำงานร่วมกัน การสร้างภาพย่อของเอกสารเป็นสิ่งสำคัญเพื่อประสบการณ์ผู้ใช้ที่ดียิ่งขึ้น ในคู่มือนี้คุณจะ สร้างตัวอย่าง PDF ด้วย Java ทีละขั้นตอนด้วย GroupDocs.Comparison ครอบคลุมตั้งแต่การตั้งค่าสภาพแวดล้อมจนถึงการปรับประสิทธิภาพ

คำตอบสั้น

  • ห้องสมุดใดที่ใช้สร้างตัวอย่าง PDF ใน Java ได้? GroupDocs.Comparison มี API ที่ง่ายสำหรับสร้างตัวอย่างคุณภาพสูง
  • รองรับรูปแบบไฟล์ใดบ้าง? มากกว่า 50 รูปแบบรวมถึง PDF, DOCX, XLSX, PPTX และอื่น ๆ
  • จะสร้างตัวอย่างเฉพาะหน้าหนึ่งได้อย่างไร? ตั้งค่า previewOptions.setPageNumbers(new int[]{1})
  • สามารถสร้างตัวอย่างแบบอะซิงโครนัสได้หรือไม่? ใช่ — ใช้ ExecutorService หรือ CompletableFuture
  • รูปแบบภาพที่ดีที่สุดสำหรับภาพย่อคืออะไร? PNG ให้คุณภาพดีที่สุด; JPEG มีขนาดเล็กกว่าเหมาะกับเว็บ

“create pdf preview java” คืออะไร?

การสร้างตัวอย่าง PDF ด้วย Java หมายถึงการแปลงแต่ละหน้าของ PDF (หรือเอกสารอื่น) เป็นภาพที่สามารถแสดงในเบราว์เซอร์หรือแอปมือถือ กระบวนการนี้มักเรียกว่า java convert document to image และช่วยให้ทำการจัดทำดัชนีภาพอย่างรวดเร็วโดยไม่ต้องโหลดเอกสารเต็มไฟล์

ทำไมต้องใช้ Java Document Preview Generator?

ก่อนจะลงมือเขียนโค้ด เรามาดูเหตุผลที่การสร้างตัวอย่างเอกสารเป็นสิ่งสำคัญสำหรับแอปพลิเคชันสมัยใหม่:

ประโยชน์ต่อประสบการณ์ผู้ใช้

  • ผู้ใช้สามารถระบุเอกสารได้อย่างรวดเร็วโดยไม่ต้องเปิดไฟล์
  • การนำทางในคอลเลกชันเอกสารขนาดใหญ่เร็วขึ้น
  • ยืนยันภาพก่อนดาวน์โหลดหรือแชร์ไฟล์

ข้อได้เปรียบด้านประสิทธิภาพ

  • ลดภาระเซิร์ฟเวอร์โดยไม่ต้องเรนเดอร์เอกสารเต็มไฟล์
  • กลยุทธ์แคชที่ดีกว่าด้วยภาพตัวอย่างขนาดเบา
  • ปรับปรุงประสบการณ์บนมือถือด้วยภาพย่อที่เหมาะสม

การใช้งานในธุรกิจ

  • ระบบจัดการเอกสารที่มีการเรียกดูแบบภาพ
  • แพลตฟอร์มอีคอมเมิร์ซที่แสดงแคตาล็อกสินค้า
  • เครื่องมือทำงานร่วมกันที่มีฟีเจอร์แชร์เอกสาร

ข้อกำหนดเบื้องต้นและการตั้งค่าสภาพแวดล้อม

ก่อนเริ่มสร้าง Java document preview generator ให้ตรวจสอบว่าคุณมี:

ซอฟต์แวร์ที่ต้องการ

  • Java Development Kit (JDK): เวอร์ชัน 8 หรือสูงกว่า (แนะนำ Java 11+ เพื่อประสิทธิภาพที่ดีกว่า)
  • Maven หรือ Gradle: สำหรับจัดการ dependency
  • IDE: IntelliJ IDEA, Eclipse หรือ IDE Java ที่คุณชื่นชอบ

ความรู้พื้นฐาน

  • พื้นฐานการเขียนโปรแกรม Java
  • การทำงานกับ File I/O
  • ความเข้าใจพื้นฐานเกี่ยวกับการประมวลผลภาพ

ข้อกำหนดระบบ

  • RAM ขั้นต่ำ 4 GB (แนะนำ 8 GB สำหรับการประมวลผลเอกสารขนาดใหญ่)
  • พื้นที่ดิสก์เพียงพอสำหรับไฟล์ตัวอย่างชั่วคราว

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

การติดตั้งและกำหนดค่า Maven

ขั้นตอนแรกในการสร้าง Java document preview generator คือการเพิ่ม dependency ของ GroupDocs.Comparison ใส่ลงใน pom.xml ของคุณ:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/comparison/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-comparison</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

เคล็ดลับ: ควรใช้เวอร์ชันล่าสุดเสมอเพื่อรับฟีเจอร์และการแก้ไขบั๊กใหม่ ตรวจสอบที่ GroupDocs releases page สำหรับอัปเดต

การกำหนดค่า Gradle (ทางเลือก)

หากคุณใช้ Gradle ให้เพิ่มโค้ดต่อไปนี้ใน build.gradle:

repositories {
    maven {
        url "https://releases.groupdocs.com/comparison/java/"
    }
}

dependencies {
    implementation 'com.groupdocs:groupdocs-comparison:25.2'
}

ตัวเลือกการตั้งค่าไลเซนส์

คุณมีหลายตัวเลือกไลเซนส์สำหรับตัวสร้างตัวอย่างเอกสารของคุณ:

1. ทดลองใช้ฟรี (เหมาะสำหรับการทดสอบ)

  • ดาวน์โหลดจากเว็บไซต์ GroupDocs
  • จำกัดที่ 3 หน้าต่อเอกสาร
  • มีลายน้ำบนผลลัพธ์

2. ไลเซนส์ชั่วคราว (สำหรับการพัฒนา)

  • เข้าถึงฟีเจอร์เต็มใน 30 วัน
  • ไม่มีลายน้ำหรือข้อจำกัดหน้า
  • เหมาะกับโครงการ proof‑of‑concept

3. ไลเซนส์เชิงพาณิชย์ (ใช้ในผลิตภัณฑ์)

  • ไม่จำกัดจำนวนเอกสารและหน้า
  • รวมการสนับสนุนระดับ priority
  • มีโมเดลไลเซนส์หลายรูปแบบให้เลือก

การเริ่มต้นพื้นฐาน

ต่อไปนี้เป็นวิธีการเริ่มต้นตัวสร้างตัวอย่างเอกสารของคุณ:

try (Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_document.docx")) {
    // Your preview generation code goes here
}

สำคัญ: ควรใช้ try‑with‑resources เสมอเพื่อให้แน่ใจว่าทรัพยากรถูกทำความสะอาดอย่างถูกต้องและหลีกเลี่ยง memory leak

วิธีสร้าง pdf preview java – การนำไปใช้ขั้นตอน‑โดย‑ขั้นตอน

ทำความเข้าใจกระบวนการสร้างตัวอย่าง

ก่อนจะลงมือเขียนโค้ด ให้เข้าใจกระบวนการสร้างตัวอย่างเอกสาร:

  1. Document Loading – โหลดเอกสารต้นฉบับเข้าสู่หน่วยความจำ
  2. Page Processing – แปลงแต่ละหน้าของเอกสารเป็นภาพ
  3. Stream Management – จัดการ output stream สำหรับภาพที่สร้างขึ้น
  4. Configuration – ตั้งค่าตัวเลือกการสร้างตัวอย่าง (รูปแบบ, คุณภาพ, หน้า)
  5. Cleanup – ปล่อยทรัพยากรและไฟล์ชั่วคราว

ขั้นตอน 1: ตั้งค่าตัวเลือกการสร้างตัวอย่าง

พื้นฐานของ Java document preview generator คือการกำหนดค่าที่ถูกต้อง ต่อไปนี้เป็นวิธีตั้งค่า preview options:

import com.groupdocs.comparison.options.PreviewOptions;
import java.io.FileOutputStream;

final Delegates.CreatePageStream createPageStream = pageNumber -> {
    String pagePath = "YOUR_OUTPUT_DIRECTORY/result-GetPagePreviewsForSourceDocument_" + pageNumber + ".png";
    try {
        return new FileOutputStream(pagePath);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return null;
    }
};

สิ่งที่เกิดขึ้น:

  • ตัว delegate CreatePageStream สร้าง output stream ที่ไม่ซ้ำกันสำหรับแต่ละหน้า
  • ชื่อไฟล์รวมหมายเลขหน้าเพื่อให้ง่ายต่อการระบุ
  • รูปแบบ PNG ให้คุณภาพดีพร้อมขนาดไฟล์ที่เหมาะสม

ขั้นตอน 2: สร้างตัวอย่างเอกสาร

ต่อไปเราจะเขียนโลจิกหลักสำหรับการสร้างตัวอย่าง:

PreviewOptions previewOptions = new PreviewOptions(createPageStream);
previewOptions.setPageNumbers(new int[]{1, 2, 3}); // Specify desired pages
comparer.getDocument().generatePreview(previewOptions);

จุดสำคัญ

  • setPageNumbers() ช่วยให้คุณสร้างตัวอย่างเฉพาะหน้าที่ต้องการเท่านั้น ซึ่งสำคัญต่อประสิทธิภาพเมื่อทำงานกับเอกสารขนาดใหญ่
  • หากไม่เรียกใช้เมธอดนี้ ระบบจะสร้างตัวอย่างสำหรับทุกหน้า

ตัวเลือกการกำหนดค่าขั้นสูง

สำหรับแอปพลิเคชันระดับ production คุณอาจต้องการควบคุมการสร้างภาพย่ออย่างละเอียด:

PreviewOptions previewOptions = new PreviewOptions(createPageStream);

// Generate previews for first 5 pages only
previewOptions.setPageNumbers(new int[]{1, 2, 3, 4, 5});

// Set image dimensions (if supported by the format)
// Note: Specific dimension control depends on the output format

// Configure preview format
// PNG: Better quality, larger files
// JPEG: Smaller files, slight quality loss

ปัญหาที่พบบ่อยในการนำไปใช้และวิธีแก้

ปัญหา 1: การจัดการหน่วยความจำกับเอกสารขนาดใหญ่

ปัญหา: PDF หรือเอกสารที่มีหลายหน้ามากอาจทำให้เกิด OutOfMemoryError

วิธีแก้: ประมวลผลเอกสารเป็น batch และทำความสะอาดทรัพยากรอย่างเหมาะสม:

// Process in smaller batches
int batchSize = 5;
int totalPages = getTotalPages(document); // Your method to get page count

for (int i = 1; i <= totalPages; i += batchSize) {
    int endPage = Math.min(i + batchSize - 1, totalPages);
    
    // Generate previews for current batch
    int[] pageNumbers = IntStream.rangeClosed(i, endPage).toArray();
    previewOptions.setPageNumbers(pageNumbers);
    
    comparer.getDocument().generatePreview(previewOptions);
    
    // Optional: Force garbage collection between batches
    System.gc();
}

ปัญหา 2: การจัดการเส้นทางไฟล์และไดเรกทอรี

ปัญหา: ไฟล์ตัวอย่างกระจัดกระจายในหลายไดเรกทอรีและเกิดการชนชื่อไฟล์

วิธีแก้: สร้างระบบจัดการไฟล์แบบมีโครงสร้าง:

public class PreviewFileManager {
    private final String baseDirectory;
    private final String documentId;
    
    public PreviewFileManager(String baseDirectory, String documentId) {
        this.baseDirectory = baseDirectory;
        this.documentId = documentId;
        
        // Create directory structure
        Path previewDir = Paths.get(baseDirectory, "previews", documentId);
        try {
            Files.createDirectories(previewDir);
        } catch (IOException e) {
            throw new RuntimeException("Failed to create preview directory", e);
        }
    }
    
    public String getPreviewPath(int pageNumber) {
        return Paths.get(baseDirectory, "previews", documentId, 
                        String.format("page_%03d.png", pageNumber)).toString();
    }
}

ปัญหา 3: การจัดการรูปแบบเอกสารที่แตกต่างกัน

ปัญหา: ประเภทเอกสารต่าง ๆ ต้องการวิธีการจัดการที่แตกต่างกัน

วิธีแก้: สร้าง handler เฉพาะรูปแบบ:

public class DocumentPreviewGenerator {
    
    public void generatePreviews(String filePath) {
        String extension = getFileExtension(filePath).toLowerCase();
        
        switch (extension) {
            case "pdf":
                generatePdfPreviews(filePath);
                break;
            case "docx":
            case "doc":
                generateWordPreviews(filePath);
                break;
            case "xlsx":
            case "xls":
                generateExcelPreviews(filePath);
                break;
            default:
                generateGenericPreviews(filePath);
        }
    }
    
    private void generatePdfPreviews(String filePath) {
        // PDF-specific optimization
        try (Comparer comparer = new Comparer(filePath)) {
            // PDF documents often have many pages
            // Generate previews for first 10 pages only by default
            PreviewOptions options = createPreviewOptions();
            options.setPageNumbers(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10});
            comparer.getDocument().generatePreview(options);
        }
    }
}

กลยุทธ์การเพิ่มประสิทธิภาพ

การปรับ CPU และ Memory

เมื่อสร้าง Java document preview generator สำหรับ production ประสิทธิภาพเป็นหัวใจสำคัญ:

1. การประมวลผลแบบพร้อมกัน

ExecutorService executor = Executors.newFixedThreadPool(4);

List<Future<Void>> futures = new ArrayList<>();
for (String documentPath : documentPaths) {
    futures.add(executor.submit(() -> {
        generatePreviewsForDocument(documentPath);
        return null;
    }));
}

// Wait for all tasks to complete
for (Future<Void> future : futures) {
    future.get();
}

executor.shutdown();

2. กลยุทธ์การแคช

public class PreviewCache {
    private final Map<String, List<String>> cache = new ConcurrentHashMap<>();
    
    public List<String> getPreviewPaths(String documentHash) {
        return cache.get(documentHash);
    }
    
    public void cachePreviewPaths(String documentHash, List<String> previewPaths) {
        cache.put(documentHash, previewPaths);
    }
}

สมดุลคุณภาพภาพกับขนาดไฟล์

การหาจุดสมดุลระหว่างคุณภาพภาพและขนาดไฟล์เป็นสิ่งสำคัญ:

  • คุณภาพสูง (PNG) – เหมาะกับเอกสารเทคนิค, แผนภาพ
  • ขนาดที่เหมาะสม (JPEG, คุณภาพ 80‑85 %) – ดีกว่าสำหรับภาพย่อบนเว็บ
  • พิจารณาสร้างหลายขนาด (thumbnail, medium, large) เพื่อรองรับอุปกรณ์ที่แตกต่างกัน

การใช้งานจริงและกรณีศึกษา

การผสานรวมกับระบบจัดการเอกสาร

ตัวอย่างการผสาน Java document preview generator เข้ากับระบบจัดการเอกสาร:

@Service
public class DocumentService {
    
    @Autowired
    private PreviewGenerator previewGenerator;
    
    public DocumentPreview uploadDocument(MultipartFile file) {
        // Save document
        String documentPath = saveDocument(file);
        
        // Generate previews asynchronously
        CompletableFuture.runAsync(() -> {
            try {
                previewGenerator.generatePreviews(documentPath);
            } catch (Exception e) {
                log.error("Failed to generate previews for: " + documentPath, e);
            }
        });
        
        return new DocumentPreview(documentPath);
    }
}

แคตาล็อกสินค้าในอี‑คอมเมิร์ซ

สำหรับแพลตฟอร์มอี‑คอมเมิร์ซที่ต้องแสดงเอกสารสินค้า:

public class ProductDocumentHandler {
    
    public void processProductDocument(String productId, String documentPath) {
        try (Comparer comparer = new Comparer(documentPath)) {
            // Generate thumbnail (first page only for product display)
            PreviewOptions thumbnailOptions = new PreviewOptions(pageNumber -> {
                String thumbnailPath = String.format("products/%s/thumbnail.png", productId);
                return createOutputStream(thumbnailPath);
            });
            thumbnailOptions.setPageNumbers(new int[]{1});
            
            comparer.getDocument().generatePreview(thumbnailOptions);
            
            // Generate detailed previews for product page
            PreviewOptions detailOptions = new PreviewOptions(pageNumber -> {
                String detailPath = String.format("products/%s/page_%d.png", productId, pageNumber);
                return createOutputStream(detailPath);
            });
            
            comparer.getDocument().generatePreview(detailOptions);
        }
    }
}

แนวทางปฏิบัติที่ดีที่สุดสำหรับการเปิดใช้งานใน Production

การจัดการข้อผิดพลาดและการบันทึก

ทำการจัดการข้อผิดพลาดอย่างครอบคลุมสำหรับตัวสร้างตัวอย่างเอกสารของคุณ:

public class RobustPreviewGenerator {
    private static final Logger logger = LoggerFactory.getLogger(RobustPreviewGenerator.class);
    
    public boolean generatePreview(String documentPath) {
        try (Comparer comparer = new Comparer(documentPath)) {
            logger.info("Starting preview generation for: {}", documentPath);
            
            PreviewOptions options = createPreviewOptions();
            comparer.getDocument().generatePreview(options);
            
            logger.info("Successfully generated previews for: {}", documentPath);
            return true;
            
        } catch (Exception e) {
            logger.error("Failed to generate previews for: " + documentPath, e);
            return false;
        }
    }
}

การจัดการทรัพยากร

ควรทำความสะอาดทรัพยากรอย่างถูกต้องเสมอ:

public class ResourceManagedPreviewGenerator implements AutoCloseable {
    private final ExecutorService executor;
    private final PreviewCache cache;
    
    public ResourceManagedPreviewGenerator() {
        this.executor = Executors.newFixedThreadPool(4);
        this.cache = new PreviewCache();
    }
    
    @Override
    public void close() {
        executor.shutdown();
        try {
            if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                executor.shutdownNow();
            }
        } catch (InterruptedException e) {
            executor.shutdownNow();
            Thread.currentThread().interrupt();
        }
        
        cache.clear();
    }
}

การแก้ไขปัญหาที่พบบ่อย

ปัญหา 1: ข้อผิดพลาด “Could not load document”

อาการ: เกิด exception เมื่อพยายามโหลดเอกสารบางประเภท

วิธีแก้

  1. ตรวจสอบว่าไฟล์ไม่เสียหาย
  2. ตรวจสอบว่ารูปแบบไฟล์ได้รับการสนับสนุน
  3. ตรวจสอบสิทธิ์การเข้าถึงไฟล์
  4. ยืนยันว่าเส้นทางไฟล์มีอยู่จริง
private boolean isDocumentValid(String filePath) {
    File file = new File(filePath);
    if (!file.exists()) {
        logger.error("Document file does not exist: {}", filePath);
        return false;
    }
    
    if (!file.canRead()) {
        logger.error("Cannot read document file: {}", filePath);
        return false;
    }
    
    return true;
}

ปัญหา 2: คุณภาพตัวอย่างแย่

อาการ: ตัวอย่างที่สร้างออกมาดูเบลอหรือพิกเซลมาก

วิธีแก้

  • ตรวจสอบคุณภาพของเอกสารต้นฉบับ
  • ปรับตั้งค่ารูปแบบเอาต์พุต (ใช้ PNG สำหรับคุณภาพ lossless)
  • ตรวจสอบว่ามีทรัพยากรระบบเพียงพอระหว่างการแปลง

ปัญหา 3: การสร้างตัวอย่างช้า

อาการ: การสร้างตัวอย่างใช้เวลานานสำหรับเอกสารขนาดใหญ่

วิธีแก้

  • จำกัดจำนวนหน้าสำหรับตัวอย่างเริ่มต้น
  • ใช้การประมวลผลแบบอะซิงโครนัส (ดูตัวอย่าง ExecutorService)
  • เพิ่มตัวบ่งชี้ความคืบหน้าเพื่อให้ผู้ใช้รับรู้
  • แคชตัวอย่างที่เข้าถึงบ่อย

ทางเลือกอื่น ๆ นอกเหนือจาก GroupDocs.Comparison

แม้ว่า GroupDocs.Comparison จะเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการสร้างตัวอย่างเอกสาร แต่คุณอาจพิจารณาเครื่องมืออื่น ๆ เช่น:

  • Apache PDFBox (เฉพาะ PDF, โอเพ่นซอร์ส)
  • iText (เชิงพาณิชย์, ฟีเจอร์ PDF ครบถ้วน)
  • ImageIO พร้อมไลบรารี Office (ควบคุมได้มากกว่า, การตั้งค่ายากกว่า)

สรุป

คุณได้เรียนรู้วิธี สร้างตัวอย่าง PDF ด้วย Java ด้วย GroupDocs.Comparison แล้ว โซลูชันนี้ให้:

  • รองรับหลายรูปแบบเอกสาร (PDF, Word, Excel, PowerPoint)
  • การสร้างตัวอย่างคุณภาพสูงพร้อมตัวเลือกกำหนดค่า
  • การจัดการข้อผิดพลาดและทรัพยากรระดับ production
  • สถาปัตยกรรมที่ขยายได้สำหรับองค์กรระดับใหญ่

ขั้นตอนต่อไป

  1. เพิ่มการแคช – ใช้ Redis หรือแคชแบบไฟล์สำหรับตัวอย่างที่เข้าถึงบ่อย
  2. เพิ่มการติดตามความคืบหน้า – แสดงสถานะการสร้างตัวอย่างสำหรับเอกสารขนาดใหญ่ให้ผู้ใช้เห็น
  3. ปรับให้เหมาะกับมือถือ – สร้างการแสดงผลตัวอย่างที่ตอบสนองต่ออุปกรณ์มือถือ
  4. มอนิเตอร์ประสิทธิภาพ – เพิ่มเมตริกและการตรวจสอบเพื่อวัดประสิทธิภาพของระบบ

พร้อมที่จะนำการสร้างตัวอย่างเอกสารไปใช้ในแอป Java ของคุณหรือยัง? เริ่มจาก proof‑of‑concept เล็ก ๆ แล้วค่อยขยายฟังก์ชันตามความต้องการของคุณ

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

Q1: ตัวสร้างตัวอย่างเอกสาร Java นี้รองรับรูปแบบไฟล์อะไรบ้าง?
A: GroupDocs.Comparison รองรับมากกว่า 50 รูปแบบรวมถึง PDF, DOCX, XLSX, PPTX, TXT, HTML และอื่น ๆ ตรวจสอบที่ documentation สำหรับรายการเต็ม

Q2: จะสร้างภาพย่อของเอกสารเฉพาะหน้าหนึ่งได้อย่างไร?
A: ใช้ previewOptions.setPageNumbers(new int[]{1}) เพื่อสร้างตัวอย่างเฉพาะหน้าหนึ่ง เหมาะสำหรับการสร้าง thumbnail ในตัวเรียกดูเอกสาร

Q3: สามารถปรับรูปแบบและคุณภาพของภาพเอาต์พุตได้หรือไม่?
A: ได้ คุณสามารถกำหนดรูปแบบเอาต์พุตผ่าน delegate CreatePageStream โดยไลบรารีส่วนใหญ่สนับสนุน PNG ซึ่งให้คุณภาพยอดเยี่ยมสำหรับตัวอย่างเอกสาร

Q4: จะจัดการไฟล์ PDF ขนาดใหญ่อย่างไรโดยไม่ให้หมดหน่วยความจำ?
A: ประมวลผลเอกสารขนาดใหญ่เป็น batch โดยระบุช่วงหน้า, ใช้ try‑with‑resources ทำความสะอาดทรัพยากร, และพิจารณาเพิ่มขนาด heap ของ JVM ด้วยพารามิเตอร์ -Xmx

Q5: มีวิธีสร้างตัวอย่างแบบอะซิงโครนัสหรือไม่?
A: แน่นอน! ใช้ CompletableFuture.runAsync() หรือ ExecutorService เพื่อสร้างตัวอย่างใน background thread ซึ่งจะไม่บล็อกเธรดหลักของแอป

Q6: จะแก้ไขข้อผิดพลาด “License not found” อย่างไร?
A: ตรวจสอบว่าไฟล์ไลเซนส์อยู่ใน classpath, ยืนยันว่าไลเซนส์ยังไม่หมดอายุ, และตรวจสอบว่าคุณใช้ไลเซนส์ประเภทที่ตรงกับเวอร์ชัน GroupDocs.Comparison ของคุณ

แหล่งข้อมูลเพิ่มเติม


อัปเดตล่าสุด: 2026-02-08
ทดสอบกับ: GroupDocs.Comparison 25.2
ผู้เขียน: GroupDocs