LibreOffice แมโคร - เข้าถึงข้อความเชิงอรรถ


1

ฉันมีมาโครใน LibreOffice Writer ซึ่งเปลี่ยนตัวพิมพ์ของคำที่เคอร์เซอร์ใช้งานได้ดียกเว้นเมื่อเคอร์เซอร์อยู่ในเชิงอรรถที่มันผิดพลาด รหัสบางส่วน:

Document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") 

oVC = ThisComponent.CurrentController.getViewCursor
oTC = ThisComponent.Text.createTextCursorByRange(oVC) ' <-the footnote error
ctext = oTC.string ' get selected text

บรรทัดถัดจากบรรทัดสุดท้ายคือการกำหนด oTC คือข้อผิดพลาดที่เกิดขึ้น เห็นได้ชัดว่า. spec ข้อความในบรรทัดนั้นไม่รวมเชิงอรรถซึ่งเป็นสิ่งที่ฉันยังรวบรวมการอ่านหนังสือ OOME ของ Andrew แต่ฉันไม่สามารถหาวิธีทั่วไปในการแมโครดังนั้นมันจะทำงานทั้งในเอกสารหลักและเชิงอรรถ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

คำตอบ:


2
oTC = oVC.getText().createTextCursorByRange(oVC)

แก้ไข :

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

เซลล์ยังมีวัตถุข้อความของตัวเองที่แตกต่างจากร่างกายหลัก oVC.getText()ทำงานเมื่ออยู่ในเซลล์เช่นกัน

คุณสมบัติThisComponent.TextและวิธีการThisComponent.getText()ทำสิ่งเดียวกัน


สมบูรณ์แบบอย่างแน่นอน ฉันเห็นว่าแอนดรูว์เขียนเพื่อใช้ getText แทนที่จะเป็น Text สำหรับสตรีมข้อความอื่น แต่ไม่สามารถหาวิธีนำไปใช้งานได้ เชิงอรรถของฉันขอบคุณและฉันขอบคุณมาก!
พอลบี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.