Skip to content

Latest commit

 

History

History
526 lines (383 loc) · 31.3 KB

File metadata and controls

526 lines (383 loc) · 31.3 KB
categories
Java Development
date 2025-12-29
description เรียนรู้วิธีทำเครื่องหมายใน PDF ด้วยโปรแกรม Java โดยใช้ GroupDocs.Annotation คู่มือเต็มรูปแบบพร้อมการตั้งค่า Maven ตัวอย่างโค้ด และเคล็ดลับการแก้ไขปัญหา
keywords Java PDF annotation tutorial, GroupDocs annotation Java example, document annotation library Java, PDF annotation programmatically Java, how to add annotations to PDF in Java, Java stream document annotation
lastmod 2025-12-29
linktitle Java PDF Annotation Tutorial
tags
pdf-annotation
groupdocs
java-tutorial
document-processing
title คู่มือ Java - ทำเครื่องหมาย PDF โดยอัตโนมัติด้วย GroupDocs
type docs
url /th/java/annotation-management/mastering-document-annotation-groupdocs-java/
weight 1

คู่มือ Java: ใส่คำอธิบาย pdf ด้วยโปรแกรมโดยใช้ GroupDocs

ทำไมคุณต้องการการใส่คำอธิบาย PDF ในแอป Java ของคุณ

ให้พูดตรงๆ—การจัดการการตรวจทานเอกสารและการทำงานร่วมกันอาจเป็นเรื่องวุ่นวายหากไม่มีเครื่องมือที่เหมาะสม ไม่ว่าคุณกำลังสร้างระบบจัดการเอกสารระดับองค์กรหรือแค่ต้องการเพิ่มความคิดเห็นลงใน PDF ในแอป Java ของคุณ การใส่คำอธิบายด้วยโปรแกรมเป็นการเปลี่ยนเกม หากคุณต้องการใส่คำอธิบาย pdf ด้วยโปรแกรม คู่มือนี้จะแสดงให้คุณเห็นอย่างชัดเจนว่าทำอย่างไรโดยมีความราบรื่นสูงสุด

ในบทแนะนำที่ครอบคลุมนี้ คุณจะเชี่ยวชาญ Java PDF annotation ด้วย GroupDocs.Annotation—หนึ่งในไลบรารีการใส่คำอธิบายเอกสารที่แข็งแกร่งที่สุดที่มีอยู่ ตอนจบคุณจะรู้วิธีโหลดเอกสารจากสตรีม, เพิ่มประเภทคำอธิบายต่าง ๆ, และจัดการกับข้อผิดพลาดทั่วไปที่มักทำให้หลาย ๆ นักพัฒนาติดขัด

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

พร้อมหรือยัง? ไปดูกันเลย

คำตอบสั้น ๆ

  • ไลบรารีใดที่ให้ฉันใส่คำอธิบาย pdf ด้วยโปรแกรมใน Java? GroupDocs.Annotation.
  • ต้องมีลิขสิทธิ์แบบจ่ายเงินเพื่อทดลองใช้งานหรือไม่? ไม่จำเป็น, มีเวอร์ชันทดลองฟรีสำหรับการพัฒนาและทดสอบ.
  • ฉันสามารถโหลด PDF จากฐานข้อมูลหรือคลาวด์สตอเรจได้หรือไม่? ได้—ใช้การโหลดแบบสตรีม.
  • แนะนำให้ใช้ Java เวอร์ชันใด? Java 11+ เพื่อประสิทธิภาพที่ดีที่สุด.
  • จะหลีกเลี่ยงการรั่วของหน่วยความจำได้อย่างไร? ต้องทำการ dispose ของ Annotator เสมอหรือใช้ try‑with‑resources.

วิธีใส่คำอธิบาย pdf ด้วยโปรแกรมใน Java

ต่อไปนี้คือกระบวนการทีละขั้นตอน ตั้งแต่การตั้งค่า Maven จนถึงการบันทึกไฟล์ที่มีคำอธิบาย แต่ละส่วนมีคำอธิบายสั้น ๆ เพื่อให้คุณเข้าใจ เหตุผล ของแต่ละบรรทัดโค้ด

ข้อกำหนดเบื้องต้น: เตรียมสภาพแวดล้อมของคุณให้พร้อม

ก่อนที่เราจะเริ่มใส่คำอธิบาย PDF อย่างมืออาชีพ ให้ตรวจสอบว่าคุณมีพื้นฐานเหล่านี้ครบแล้ว:

ความต้องการการตั้งค่าเบื้องต้น

สภาพแวดล้อม Java:

  • JDK 8 หรือสูงกว่า (แนะนำ JDK 11+ เพื่อประสิทธิภาพที่ดีขึ้น)
  • IDE ที่คุณชอบ (IntelliJ IDEA, Eclipse, หรือ VS Code)

Dependencies ของโปรเจกต์:

  • Maven 3.6+ สำหรับการจัดการ dependencies
  • ไลบรารี GroupDocs.Annotation รุ่น 25.2 หรือใหม่กว่า

ความรู้ที่คุณต้องมี

ไม่ต้องกังวล—คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญ Java เพียงแค่คุ้นเคยกับ:

  • ไวยากรณ์ Java และแนวคิดเชิงวัตถุ
  • การจัดการ dependencies ด้วย Maven
  • การทำงานกับไฟล์ I/O

เท่านี้! เราจะอธิบายส่วนที่เหลือให้คุณเข้าใจในขณะทำตามขั้นตอน

การตั้งค่า GroupDocs.Annotation: วิธีที่ถูกต้อง

บทแนะนำส่วนใหญ่ละเลยรายละเอียดการตั้งค่าที่สำคัญ ไม่ใช่บทนี้ เราจะทำให้ GroupDocs.Annotation รวมเข้ากับโปรเจกต์ของคุณอย่างถูกต้อง

การกำหนดค่า Maven ที่ทำงานได้จริง

เพิ่มส่วนนี้ลงใน pom.xml ของคุณ (และใช่ การกำหนดค่า repository มีความสำคัญ—หลายคนมักพลาดขั้นตอนนี้):

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

เคล็ดลับ: ตรวจสอบเวอร์ชันล่าสุดเสมอบนหน้า releases ของ GroupDocs. รุ่น 25.2 มีการปรับปรุงประสิทธิภาพอย่างสำคัญเมื่อเทียบกับรุ่นก่อนหน้า

การจัดการลิขสิทธิ์: ตัวเลือกของคุณ

คุณมีสามทางเลือก:

  1. Free Trial: เหมาะสำหรับการทดสอบและโครงการขนาดเล็ก
  2. Temporary License: เหมาะสำหรับการพัฒนาและ proof‑of‑concepts
  3. Full License: จำเป็นสำหรับการใช้งานใน production

สำหรับบทแนะนำนี้ เราจะใช้เวอร์ชันทดลองฟรี ซึ่งเพียงพอสำหรับการสาธิต อย่าลืมว่าแอป production จะต้องมีลิขสิทธิ์ที่ถูกต้อง

การตรวจสอบการตั้งค่าอย่างรวดเร็ว

ให้แน่ใจก่อนว่า ทุกอย่างทำงานได้ก่อนจะไปสู่ส่วนที่สนุก:

import com.groupdocs.annotation.Annotator;

public class AnnotationSetup {
    public static void main(String[] args) {
        System.out.println("GroupDocs.Annotation is ready to use!");
        // If this compiles and runs without errors, you're good to go
    }
}

การโหลดเอกสารจากสตรีม: พื้นฐานสำคัญ

นี่คือจุดที่เรื่องราวเริ่มน่าสนใจ นักพัฒนาส่วนใหญ่มักโหลดเอกสารจากพาธไฟล์ แต่ การโหลดแบบสตรีม ให้ความยืดหยุ่นสูง คุณสามารถโหลดเอกสารจากฐานข้อมูล, คำขอเว็บ, หรือแหล่งใดก็ได้

ทำไมสตรีมถึงสำคัญ

ลองคิดดูว่าในแอปจริง PDF ของคุณอาจมาจาก:

  • คลาวด์สตอเรจ (AWS S3, Google Cloud, Azure)
  • BLOB ในฐานข้อมูล
  • คำขอ HTTP
  • ระบบไฟล์ที่เข้ารหัส

สตรีมจัดการทุกสถานการณ์เหล่านี้ได้อย่างลงตัว

ขั้นตอนที่ 1: เปิด Input Stream ของคุณ

import java.io.FileInputStream;
import java.io.InputStream;

public class LoadDocument {
    public static void main(String[] args) throws Exception {
        // Replace with your actual document path
        InputStream stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/input.pdf");
        // The stream is now ready for GroupDocs.Annotation
    }
}

หมายเหตุจากโลกจริง: ใน production คุณควรห่อโค้ดนี้ด้วยการจัดการข้อยกเว้นและการจัดการทรัพยากรที่เหมาะสม (try‑with‑resources คือเพื่อนของคุณ)

ขั้นตอนที่ 2: เริ่มต้น Annotator

import com.groupdocs.annotation.Annotator;

public class LoadDocument {
    public static void main(String[] args) throws Exception {
        InputStream stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/input.pdf");
        final Annotator annotator = new Annotator(stream);
        
        // Now you're ready to start adding annotations
        // Don't forget to dispose() when you're done!
    }
}

เคล็ดลับการจัดการหน่วยความจำ: อย่าลืมเรียก annotator.dispose() เมื่อเสร็จสิ้น นี่จะป้องกันการรั่วของหน่วยความจำที่อาจทำให้แอปของคุณช้าเกินไป

การเพิ่มคำอธิบายแรกของคุณ: Area Annotations

Area annotations เหมาะสำหรับการไฮไลท์ส่วนเฉพาะของเอกสาร คิดว่าเป็นสติ๊กเกอร์ดิจิทัลที่คุณวางได้ทุกที่บน PDF

การสร้าง Area Annotation

import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;

public class LoadDocument {
    public static void main(String[] args) throws Exception {
        InputStream stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/input.pdf");
        final Annotator annotator = new Annotator(stream);

        // Create an area annotation
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100)); // x, y, width, height
        area.setBackgroundColor(65535); // ARGB color format (this is cyan)

        // Add the annotation to your document
        annotator.add(area);
        
        // Save the annotated document
        String outputPath = "YOUR_OUTPUT_DIRECTORY/LoadDocumentFromStream.pdf";
        annotator.save(outputPath);
        
        // Clean up resources
        annotator.dispose();
    }
}

ทำความเข้าใจพิกัดสี่เหลี่ยม

พารามิเตอร์ Rectangle(100, 100, 100, 100) ทำงานดังนี้:

  • 100 แรก: ตำแหน่ง X (พิกเซลจากขอบซ้าย)
  • 100 ที่สอง: ตำแหน่ง Y (พิกเซลจากขอบบน)
  • 100 ที่สาม: ความกว้างของคำอธิบาย
  • 100 ที่สี่: ความสูงของคำอธิบาย

เคล็ดลับพิกัด: พิกัด PDF เริ่มจากมุมบน‑ซ้าย หากคุณคุ้นเคยกับพิกัดคณิตศาสตร์ (จุดเริ่มจากมุมล่าง‑ซ้าย) อาจรู้สึกคว่ำหัวในตอนแรก

เทคนิคการใส่คำอธิบายขั้นสูง

ประเภทคำอธิบายหลายแบบ

คุณไม่ได้จำกัดแค่ area annotations นี่คือตัวอย่างการเพิ่มประเภทต่าง ๆ:

import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.annotationmodels.AreaAnnotation;

public class AddAnnotations {
    public static void main(String[] args) throws Exception {
        InputStream stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/input.pdf");
        final Annotator annotator = new Annotator(stream);

        // Area annotation with custom styling
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535); // Semi-transparent cyan
        area.setOpacity(0.7); // 70% opacity for subtle highlighting

        annotator.add(area);
        
        String outputPath = "YOUR_OUTPUT_DIRECTORY/AnnotatedDocument.pdf";
        annotator.save(outputPath);
        annotator.dispose();
    }
}

เคล็ดลับการจัดการสี

สี ARGB อาจซับซ้อน นี่คือค่าที่พบบ่อย:

  • 65535 = Cyan
  • 16711680 = Red
  • 65280 = Green
  • 255 = Blue
  • 16777215 = White
  • 0 = Black

เคล็ดลับมืออาชีพ: ใช้เครื่องคำนวนสี ARGB ออนไลน์เพื่อหาค่าที่ต้องการ หรือแปลงจากสี hex ด้วย Integer.parseInt("FF0000", 16) สำหรับสีแดง

การประยุกต์ใช้ในโลกจริงที่คุณสามารถสร้างได้

ระบบตรวจทานเอกสาร

เหมาะสำหรับการตรวจทานเอกสารทางกฎหมาย, การจัดการสัญญา, หรือการทำงานร่วมกันบนบทความวิชาการ:

// Example: Highlighting important clauses in contracts
AreaAnnotation contractClause = new AreaAnnotation();
contractClause.setBox(new Rectangle(50, 200, 400, 50));
contractClause.setBackgroundColor(16776960); // Yellow highlight
contractClause.setMessage("Review this clause for compliance");

กระบวนการตรวจสอบคุณภาพ

ใช้คำอธิบายเพื่อบ่งชี้ปัญหาในเอกสารเทคนิค:

// Example: Marking sections that need updates
AreaAnnotation updateNeeded = new AreaAnnotation();
updateNeeded.setBox(new Rectangle(100, 300, 300, 100));
updateNeeded.setBackgroundColor(16711680); // Red for urgent attention
updateNeeded.setMessage("Content outdated - requires immediate update");

เครื่องมือการศึกษา

สร้างสื่อการเรียนรู้แบบโต้ตอบ:

// Example: Highlighting key concepts in textbooks
AreaAnnotation keyconcept = new AreaAnnotation();
keyContent.setBox(new Rectangle(75, 150, 450, 75));
keyContent.setBackgroundColor(65280); // Green for important information
keyContent.setMessage("Key concept: Remember this for the exam!");

การเพิ่มประสิทธิภาพ: เคล็ดลับพร้อมใช้งานใน Production

แนวปฏิบัติการจัดการหน่วยความจำ

ใช้ try‑with‑resources เสมอเมื่อทำได้:

public void annotateDocument(InputStream documentStream) throws Exception {
    try (Annotator annotator = new Annotator(documentStream)) {
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535);
        
        annotator.add(area);
        annotator.save("output.pdf");
        // annotator.dispose() called automatically
    }
}

การประมวลผลแบบแบตช์สำหรับเอกสารขนาดใหญ่

เมื่อประมวลผลหลายเอกสาร:

public void processBatch(List<InputStream> documents) throws Exception {
    for (InputStream doc : documents) {
        try (Annotator annotator = new Annotator(doc)) {
            // Process each document
            // Memory is properly released after each iteration
        }
    }
}

การปรับแต่งสตรีม

สำหรับไฟล์ขนาดใหญ่ ควรใช้การบัฟเฟอร์:

import java.io.BufferedInputStream;

InputStream bufferedStream = new BufferedInputStream(
    new FileInputStream("large-document.pdf"), 
    8192 // 8KB buffer
);

ปัญหาที่พบบ่อยและวิธีแก้

ปัญหา 1: "Document format not supported"

สาเหตุ: คุณพยายามใส่คำอธิบายไฟล์ที่ GroupDocs.Annotation ไม่รู้จัก

วิธีแก้: ตรวจสอบรูปแบบที่รองรับในเอกสารประกอบ ส่วนใหญ่รูปแบบทั่วไป (PDF, DOCX, PPTX) รองรับแล้ว แต่บางรูปแบบพิเศษอาจไม่รองรับ

ปัญหา 2: OutOfMemoryError กับไฟล์ขนาดใหญ่

สาเหตุ: แอปของคุณล่มเมื่อประมวลผล PDF ขนาดใหญ่

วิธีแก้:

  1. เพิ่มขนาด heap ของ JVM: -Xmx2g
  2. ประมวลผลเอกสารเป็นชุดย่อย
  3. ตรวจสอบว่าคุณเรียก dispose() อย่างถูกต้อง

ปัญหา 3: คำอธิบายแสดงในตำแหน่งผิด

สาเหตุ: คำอธิบายของคุณปรากฏในตำแหน่งที่ไม่คาดคิด

วิธีแก้: ตรวจสอบระบบพิกัดอีกครั้ง จำไว้ว่า PDF เริ่มจากมุมบน‑ซ้าย และหน่วยเป็น point (1 inch = 72 points)

ปัญหา 4: สีไม่แสดงตามที่คาด

สาเหตุ: สีของคำอธิบายไม่ตรงกับที่คุณตั้งค่า

วิธีแก้: ยืนยันว่าคุณใช้รูปแบบ ARGB อย่างถูกต้อง ช่อง alpha มีผลต่อความโปร่งใส ซึ่งอาจทำให้สีดูแตกต่างจากที่คาดไว้

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

1. การจัดการข้อผิดพลาด

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

public boolean annotateDocument(InputStream input, String outputPath) {
    try (Annotator annotator = new Annotator(input)) {
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535);
        
        annotator.add(area);
        annotator.save(outputPath);
        return true;
    } catch (Exception e) {
        logger.error("Failed to annotate document: " + e.getMessage(), e);
        return false;
    }
}

2. การจัดการการตั้งค่า

ใช้ไฟล์การตั้งค่าสำหรับค่าที่ใช้บ่อย:

# application.properties
annotation.default.color=65535
annotation.default.opacity=0.7
annotation.output.directory=/path/to/output

3. การตรวจสอบความถูกต้อง

ตรวจสอบอินพุตเสมอ:

public void validateAnnotationParameters(Rectangle box) {
    if (box.getWidth() <= 0 || box.getHeight() <= 0) {
        throw new IllegalArgumentException("Annotation dimensions must be positive");
    }
    if (box.getX() < 0 || box.getY() < 0) {
        throw new IllegalArgumentException("Annotation position must be non-negative");
    }
}

การทดสอบโค้ดการใส่คำอธิบายของคุณ

วิธีการทดสอบหน่วย

@Test
public void testAreaAnnotationCreation() throws Exception {
    // Given
    InputStream testDocument = getTestDocumentStream();
    
    // When
    try (Annotator annotator = new Annotator(testDocument)) {
        AreaAnnotation area = new AreaAnnotation();
        area.setBox(new Rectangle(100, 100, 100, 100));
        area.setBackgroundColor(65535);
        
        annotator.add(area);
        
        // Then
        // Verify annotation was added successfully
        // (implementation depends on your testing framework)
    }
}

การผสานรวมกับเฟรมเวิร์กยอดนิยม

การผสานรวมกับ Spring Boot

@Service
public class DocumentAnnotationService {
    
    @Autowired
    private DocumentRepository documentRepository;
    
    public String annotateDocument(Long documentId, List<AnnotationRequest> annotations) {
        try (InputStream docStream = documentRepository.getDocumentStream(documentId);
             Annotator annotator = new Annotator(docStream)) {
            
            for (AnnotationRequest request : annotations) {
                AreaAnnotation area = createAnnotationFromRequest(request);
                annotator.add(area);
            }
            
            String outputPath = generateOutputPath(documentId);
            annotator.save(outputPath);
            
            return outputPath;
        } catch (Exception e) {
            throw new DocumentAnnotationException("Failed to annotate document", e);
        }
    }
}

สิ่งต่อไปที่ควรสำรวจ: ฟีเจอร์ขั้นสูง

เมื่อคุณเชี่ยวชาญพื้นฐานที่อธิบายไว้ในบทแนะนำนี้แล้ว ลองสำรวจต่อไปนี้:

  1. Text Annotations – เพิ่มความคิดเห็นและโน้ตโดยตรงบนข้อความที่กำหนด
  2. Shape Annotations – วาดลูกศร, วงกลม, และรูปทรงอื่น ๆ เพื่อไฮไลท์ส่วนของเอกสาร
  3. Watermarks – เพิ่มลายน้ำแบบกำหนดเองเพื่อการสร้างแบรนด์หรือความปลอดภัย
  4. Annotation Extraction – อ่านคำอธิบายที่มีอยู่จากเอกสารเพื่อการวิเคราะห์หรือการย้ายข้อมูล
  5. Custom Annotation Types – สร้างประเภทคำอธิบายเฉพาะตามกรณีการใช้งานของคุณ

สรุป

ตอนนี้คุณมีพื้นฐานที่มั่นคงใน Java PDF annotation ด้วย GroupDocs.Annotation ตั้งแต่การโหลดเอกสารผ่านสตรีมจนถึงการเพิ่ม area annotations และการเพิ่มประสิทธิภาพสำหรับการใช้งานใน production คุณพร้อมแล้วที่จะสร้างฟีเจอร์การใส่คำอธิบายเอกสารที่แข็งแกร่ง

ประเด็นสำคัญ:

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

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

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

Q: เวอร์ชัน Java ขั้นต่ำที่ต้องใช้สำหรับ GroupDocs.Annotation คืออะไร?
A: Java 8 เป็นขั้นต่ำ แต่แนะนำให้ใช้ Java 11+ เพื่อประสิทธิภาพและการจัดการหน่วยความจำที่ดีกว่า

Q: ฉันสามารถใส่คำอธิบายให้กับเอกสารที่ไม่ใช่ PDF ได้หรือไม่?
A: แน่นอน! GroupDocs.Annotation รองรับเอกสารกว่า 50 รูปแบบ รวมถึง DOCX, PPTX, XLSX และรูปแบบภาพต่าง ๆ

Q: จะจัดการกับไฟล์ PDF ขนาดใหญ่มากโดยไม่ให้หน่วยความจำหมดได้อย่างไร?
A: ใช้กลยุทธ์ต่อไปนี้: เพิ่ม heap ของ JVM (-Xmx4g), ประมวลผลเป็นชุดย่อย, และทำการ dispose ของ Annotator อย่างถูกต้องเสมอ

Q: สามารถปรับสีและความโปร่งใสของคำอธิบายได้หรือไม่?
A: ทำได้! ใช้ค่า ARGB เพื่อควบคุมสีอย่างแม่นยำ เช่น setBackgroundColor(65535) จะตั้งค่าสีไซอาน และ setOpacity(0.5) ทำให้โปร่งใส 50 %

Q: ข้อกำหนดด้านลิขสิทธิ์สำหรับการใช้งานใน production คืออะไร?
A: คุณต้องมีลิขสิทธิ์ GroupDocs.Annotation ที่ถูกต้องสำหรับการใช้งานใน production การพัฒนาและการทดสอบสามารถใช้เวอร์ชันทดลองได้ แต่แอปเชิงพาณิชย์ต้องซื้อไลเซนส์

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


อัปเดตล่าสุด: 2025-12-29
ทดสอบด้วย: GroupDocs.Annotation 25.2
ผู้เขียน: GroupDocs