จัดการวัตถุมากลักใน PHP

คำนำ

PowerPoint มีฟังก์ชันหมึก (ink) ให้คุณวาดรูปที่ไม่ได้เป็นรูปแบบมาตรฐาน ซึ่งสามารถใช้เพื่อเน้นวัตถุอื่น ๆ แสดงการเชื่อมต่อและขั้นตอนต่าง ๆ และดึงความสนใจไปยังรายการเฉพาะบนสไลด์

Aspose.Slides มีชนิดของหมึกทั้งหมด (เช่น คลาส Ink) ที่คุณต้องการเพื่อสร้างและจัดการวัตถุหมึก

ความแตกต่างระหว่างวัตถุปกติและวัตถุมากลัก (Ink Objects)

วัตถุบนสไลด์ PowerPoint โดยทั่วไปจะแทนด้วยวัตถุรูปทรง (shape) วัตถุรูปทรงในรูปแบบที่ง่ายที่สุดคือคอนเทนเนอร์ที่กำหนดพื้นที่ของวัตถุนั้นเอง (กรอบ) พร้อมคุณสมบัติต่าง ๆ ซึ่งรวมถึงขนาดของพื้นที่คอนเทนเนอร์, รูปร่างของคอนเทนเนอร์, พื้นหลังของคอนเทนเนอร์ เป็นต้น สำหรับข้อมูลเพิ่มเติมดูที่ Shape Layout Format

อย่างไรก็ตามเมื่อ PowerPoint ทำงานกับวัตถุมากลัก (ink object) จะละเลยคุณสมบัติทั้งหมดของกรอบวัตถุ (คอนเทนเนอร์) ยกเว้นขนาดของมัน ขนาดของพื้นที่คอนเทนเนอร์จะกำหนดโดยค่า width และ height มาตรฐาน:

ink_powerpoint1

ลายเส้น Inkshape (Inkshape Traces)

Trace คือองค์ประกอบพื้นฐานหรือมาตรฐานที่ใช้บันทึกเส้นทางของปากกาขณะผู้ใช้เขียนหมึกดิจิทัล Trace เป็นการบันทึกที่อธิบายลำดับของจุดที่เชื่อมต่อกัน

รูปแบบการเข้ารหัสที่ง่ายที่สุดระบุตำแหน่งพิกัด X และ Y ของแต่ละจุดตัวอย่าง เมื่อจุดที่เชื่อมต่อทั้งหมดถูกแสดงผลจะได้ภาพเช่นนี้:

ink_powerpoint2

คุณสมบัติ Brush สำหรับการวาด

คุณสามารถใช้แปรง (brush) เพื่อวาดเส้นเชื่อมจุดขององค์ประกอบ Trace แปรงมีสีและขนาดของตนเอง ซึ่งสอดคล้องกับคุณสมบัติ Brush.Color และ Brush.Size

ตั้งค่าสี Brush ของหมึก

โค้ด PHP นี้แสดงวิธีตั้งค่าสีสำหรับแปรง:

  $pres = new Presentation("pres.pptx");
  try {
    $ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $traces = $ink->getTraces();
    $brush = $traces[0]->getBrush();
    $brushColor = $brush->getColor();
    $brush->setColor(java("java.awt.Color")->RED);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

ตั้งค่าขนาด Brush ของหมึก

โค้ด PHP นี้แสดงวิธีตั้งค่าขนาดสำหรับแปรง:

  $pres = new Presentation("pres.pptx");
  try {
    $ink = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $traces = $ink->getTraces();
    $brush = $traces[0]->getBrush();
    $brushSize = $brush->getSize();
    $brush->setSize(new Java("java.awt.Dimension", 5, 10));
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

โดยทั่วไป ความกว้างและความสูงของแปรงไม่ตรงกัน ดังนั้น PowerPoint จะไม่แสดงขนาดของแปรง (ส่วนข้อมูลจะแสดงเป็นสีเทา) แต่เมื่อความกว้างและความสูงของแปรงตรงกัน PowerPoint จะแสดงขนาดดังนี้:

ink_powerpoint3

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

ink_powerpoint4

คอนเทนเนอร์ (กรอบ) ไม่พิจารณาขนาดของแปรง—มันจะถือว่าความหนาของเส้นเป็นศูนย์ (ดูภาพสุดท้าย)

ดังนั้นเพื่อกำหนดพื้นที่ที่มองเห็นได้ของวัตถุมากลักทั้งหมด เราต้องพิจารณาขนาดของแปรงในวัตถุ Trace ที่นี่วัตถุเป้าหมาย (วัตถุ Trace ของข้อความที่เขียนด้วยมือ) ถูกสเกลให้พอดีกับขนาดของคอนเทนเนอร์ (กรอบ) เมื่อขนาดของคอนเทนเนอร์เปลี่ยนแปลง ขนาดของแปรงจะคงที่และกลับกัน

ink_powerpoint5

PowerPoint แสดงพฤติกรรมเดียวกันเมื่อทำงานกับข้อความ:

ink_powerpoint6

การอ่านต่อ

  • เพื่ออ่านเกี่ยวกับรูปทรงโดยทั่วไป ดูส่วน PowerPoint Shapes
  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับค่าเชิงประสิทธิภาพ ดู Shape Effective Properties