รับขอบเขตย่อหน้าจากการนำเสนอใน Python
ภาพรวม
บทความนี้อธิบายวิธีการรับขอบเขต, ขนาด และพิกัดของย่อหน้าใน Aspose.Slides โดยจะแสดงวิธีดึงสี่เหลี่ยมของย่อหน้าจาก TextFrame ด้วยการใช้ Paragraph.get_rect, วิธีรับพิกัดของย่อหน้าในกรอบข้อความของเซลล์ตาราง, และเน้นรายละเอียดสำคัญเช่น หน่วยวัด, ผลของการตัดคำต่อขอบเขต, การแปลงเป็นพิกเซล, และค่าการจัดรูปแบบย่อหน้าที่มีประสิทธิภาพ
รับพิกัดสี่เหลี่ยมของย่อหน้า
ใช้ Paragraph.get_rect เพื่อรับสี่เหลี่ยมขอบเขตของย่อหน้า
import aspose.slides as slides
with slides.Presentation("Shapes.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes[0]
paragraph = shape.text_frame.paragraphs[0]
rectangle = paragraph.get_rect()
รับขนาดของย่อหน้าใน TextFrame ของเซลล์ตาราง
เพื่อรับขนาดและพิกัดของ Paragraph ในกรอบข้อความของเซลล์ตาราง, ให้ใช้ Paragraph.get_rect สี่เหลี่ยมที่คืนค่าจะเป็นสัมพัทธ์กับกรอบข้อความของเซลล์ตาราง, ดังนั้นจึงต้องเพิ่มตำแหน่งของตารางและออฟเซ็ตของเซลล์เมื่อคุณต้องการพิกัดระดับสไลด์
ตัวอย่างต่อไปนี้จะรับขอบเขตของย่อหน้าในเซลล์ตารางและวาดสี่เหลี่ยมบนสไลด์เพื่อแสดงขอบเขตเหล่านั้น:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation("source.pptx") as presentation:
slide = presentation.slides[0]
table = slide.shapes[0]
cell = table.rows[1][1]
cell_x = table.x + cell.offset_x
cell_y = table.y + cell.offset_y
for paragraph in cell.text_frame.paragraphs:
if paragraph.text == "":
continue
paragraph_rectangle = paragraph.get_rect()
paragraph_rectangle_x = paragraph_rectangle.x + cell_x
paragraph_rectangle_y = paragraph_rectangle.y + cell_y
paragraph_bounds_shape = slide.shapes.add_auto_shape(
slides.ShapeType.RECTANGLE,
paragraph_rectangle_x,
paragraph_rectangle_y,
paragraph_rectangle.width,
paragraph_rectangle.height)
paragraph_bounds_shape.fill_format.fill_type = slides.FillType.NO_FILL
paragraph_bounds_shape.line_format.fill_format.solid_fill_color.color = draw.Color.yellow
paragraph_bounds_shape.line_format.fill_format.fill_type = slides.FillType.SOLID
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
คำถามที่พบบ่อย
พิกัดของย่อมาวัดเป็นหน่วยใด?
พิกัดวัดเป็นจุด (points) โดยที่ 1 นิ้วเท่ากับ 72 จุด ค่าที่วัดนี้ใช้กับพิกัดและมิติทั้งหมดบนสไลด์
การตัดคำมีผลต่อขอบเขตของย่อหน้าหรือไม่?
ใช่ หาก TextFrameFormat.wrap_text ถูกเปิดใช้งานสำหรับ TextFrame, ข้อความจะถูกตัดเพื่อให้พอดีกับความกว้างของพื้นที่ ทำให้ขอบเขตจริงของย่อหน้ามีการเปลี่ยนแปลง
พิกัดของย่อหน้าสามารถแมปเป็นพิกเซลในภาพที่ส่งออกได้อย่างเชื่อถือได้หรือไม่?
ได้ ใช้สูตรต่อไปนี้เพื่อแปลงจากจุดเป็นพิกเซล: pixels = points x (DPI / 72) ผลลัพธ์ขึ้นอยู่กับค่า DPI ที่เลือกสำหรับการเรนเดอร์หรือการส่งออก
ฉันจะรับพารามิเตอร์การจัดรูปแบบย่อหน้าที่ “effective” โดยคำนึงถึงการสืบทอดสไตล์อย่างไร?
ใช้ โครงสร้างข้อมูลการจัดรูปแบบย่อหน้าที่มีประสิทธิภาพ ซึ่งจะคืนค่าที่สรุปขั้นสุดท้ายของการเยื้อง, ระยะห่าง, การตัดคำ, RTL และอื่นๆ