รับขอบเขตย่อหน้าจากงานนำเสนอใน Python
ภาพรวม
บทความนี้อธิบายวิธีการรับค่าขอบเขต, ขนาด, และพิกัดของย่อหน้าและส่วนข้อความใน Aspose.Slides แสดงวิธีการดึงสี่เหลี่ยมของย่อหน้าใน TextFrame ด้วยการใช้ get_rect(), วิธีการรับพิกัดของย่อหน้าและส่วนภายใน TextFrame ของเซลล์ตาราง, รวมถึงรายละเอียดสำคัญเช่น หน่วยวัด, ผลของการห่อข้อความต่อขอบเขต, การแปลงเป็นพิกเซล, และค่าการจัดรูปแบบย่อหน้าแบบ effective
รับพิกัดย่อหน้าและส่วนใน TextFrame
โดยใช้ Aspose.Slides for Python via .NET นักพัฒนาสามารถรับพิกัดสี่เหลี่ยมของ Paragraph ภายในคอลเลกชันของ TextFrame ได้ นอกจากนี้ยังสามารถรับพิกัดของ Portion ภายในคอลเลกชันของ Paragraph ได้อีกด้วย ในหัวข้อนี้เราจะสาธิตด้วยตัวอย่างวิธีการรับพิกัดสี่เหลี่ยมของย่อหน้าพร้อมตำแหน่งของ Portion ภายในย่อหน้า
รับพิกัดสี่เหลี่ยมของย่อหน้า
มีการเพิ่มเมธอดใหม่ GetRect() ซึ่งทำให้สามารถรับสี่เหลี่ยมขอบเขตของย่อหน้าได้
import aspose.slides as slides
# สร้างอ็อบเจกต์ Presentation ที่แสดงถึงไฟล์งานนำเสนอ
with slides.Presentation(path + "Shapes.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
textFrame = shape.text_frame
rect = textFrame.paragraphs[0].get_rect()
รับขนาดของย่อหน้าและส่วนภายใน TextFrame ของเซลล์ตาราง
เพื่อรับขนาดและพิกัดของ ส่วน หรือ ย่อหน้า ใน TextFrame ของเซลล์ตาราง คุณสามารถใช้เมธอด IPortion.GetRect และ IParagraph.GetRect ได้
โค้ดตัวอย่างนี้แสดงการทำงานที่อธิบายไว้:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation(path + "source.pptx") as pres:
tbl = pres.slides[0].shapes[0]
cell = tbl.rows[1][1]
x = tbl.X + tbl.rows[1][1].offset_x
y = tbl.Y + tbl.rows[1][1].offset_y
for para in cell.text_frame.paragraphs:
if para.text == "":
continue
rect = para.get_rect()
shape = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE,
rect.x + x, rect.y + y, rect.width, rect.height)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.solid_fill_color.color = draw.Color.yellow
shape.line_format.fill_format.fill_type = slides.FillType.SOLID
for portion in para.portions:
if "0" in portion.text:
rect = portion.get_rect()
shape = pres.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE,
rect.x + x, rect.y + y, rect.width, rect.height)
shape.fill_format.fill_type = slides.FillType.NO_FILL
คำถามที่พบบ่อย
หน่วยที่ใช้ในการวัดพิกัดที่ส่งกลับสำหรับย่อหน้าและส่วนข้อความคืออะไร?
ในหน่วยพอยต์, โดยที่ 1 นิ้ว = 72 พอยต์. ค่านี้ใช้กับพิกัดและมิติทั้งหมดบนสไลด์
การตัดบรรทัดอัตโนมัติมีผลต่อขอบเขตของย่อหน้าหรือไม่?
ใช่. หากเปิดการห่อข้อความ(wrapping) ใน TextFrame, ข้อความจะตัดบรรทัดให้พอดีกับความกว้างของพื้นที่, ซึ่งทำให้ขอบเขตของย่อหน้าจริงเปลี่ยนไป
สามารถแมพพิกัดของย่อหน้าเป็นพิกเซลในภาพที่ส่งออกได้อย่างเชื่อถือได้หรือไม่?
ใช่. แปลงพอยต์เป็นพิกเซลโดยใช้: pixels = points × (DPI / 72). ผลลัพธ์ขึ้นอยู่กับ DPI ที่เลือกสำหรับการเรนเดอร์/ส่งออก
จะดึงพารามิเตอร์การจัดรูปแบบย่อหน้าแบบ “effective” อย่างไรโดยคำนึงถึงการสืบทอดสไตล์?
ใช้ effective paragraph formatting data structure; มันจะส่งค่าที่สรุปขั้นสุดท้ายสำหรับการเยื้อง, ระยะห่าง, การห่อ, RTL, และอื่น ๆ