วิธีลบรูปภาพทั้งหมดในเอกสารใน LibreOffice Writer


10

Ubuntu 12.04

ฉันต้องการลบภาพทั้งหมดออกจากเอกสารใน LibreOffice Writer เอกสารของฉันมี ~ 350 ภาพ มีวิธีลบen masseมากกว่าหนึ่งต่อหนึ่งหรือไม่ ฉันลองยกเลิกการเลือกเครื่องมือ> ตัวเลือก> LibreOffice Writer> ดู> แสดง> "กราฟิกและวัตถุ" แต่ผู้ถือสถานที่ยังคงมองเห็นได้

แก้ไข: ฉันรู้เกี่ยวกับการบันทึกหน้าเป็นไฟล์ข้อความธรรมดา แต่ฉันต้องการการจัดรูปแบบในเอกสารของฉัน


@Chelia: คุณได้ลองบันทึกเอกสารเป็นไฟล์ข้อความเท่านั้น (ในการตั้งค่า "บันทึกเป็น")?
stephenmyall

แต่ทำไมการยกเลิกการเลือก "ตัวเลือก> ตัวเขียน libreoffice> มุมมอง> แสดง>" กราฟิกและวัตถุ "" ไม่ทำงาน ฉันลองแล้ว มันใช้งานได้สำหรับฉัน ด้วยการตั้งค่าที่ถูกเลือกในครั้งต่อไปที่ฉันเปิดเอกสารใด ๆ ที่มีกราฟิกฉันเพิ่งเห็นผู้ถือสถานที่

เขายังคงต้องลบตัวยึดตำแหน่ง @ vasa1 :)
Rinzwind

ความจริง! แต่มันไม่ชัดเจนว่าจุดมุ่งหมายสุดท้ายคืออะไรหรือเพราะเหตุใด OP จึงไม่ต้องการเห็นภาพ การส่งออกเป็นไฟล์แบบข้อความอย่างเดียวอาจทำให้การฟอร์แมตเป็นจำนวนมาก

ว่า .. ! ฉันจะสูญเสียการจัดรูปแบบทั้งหมดหากบันทึกด้วยข้อความเท่านั้น
Chella

คำตอบ:


12

คุณยังสามารถใช้มาโครระยะสั้นจากภายใน LibreOffice เพื่อลบภาพทั้งหมดในเอกสาร:

Sub RemoveImages

   Dim oDoc as Object
   oDoc = ThisComponent

   Dim oGraphics as Object
   oGraphics = oDoc.getGraphicObjects()

   Dim oImg as Object

   For Each oImg in oGraphics
       oDoc.getText().removeTextContent(oImg)
   Next 

End Sub

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

สร้างมาโคร

LibreOffice จัดเตรียมภาษาพื้นฐานเช่นเดียวกับใน IDE เพื่อสร้าง, ดีบัก, จัดเก็บและรันโค้ด

หากต้องการเปิดกล่องโต้ตอบแมโครให้ใช้Alt+ F11หรือจากเมนูเครื่องมือ > มาโคร > จัดระเบียบมาโคร > LibreOffice Basic

รหัสถูกวางไว้ในโมดูลซึ่งถูกจัดเป็นห้องสมุด คุณสามารถสร้างของคุณเอง แต่เพื่อจุดประสงค์ส่วนใหญ่คุณสามารถใช้ไลบรารีMyMacrosในตัวและโมดูล 1 ในตัว

เมื่อโต้ตอบแมโครเปิดไฮไลต์Module1และกดแก้ไข นี่เป็นการเปิด IDE

รหัสถูกจัดระเบียบเป็นหมวดย่อยและฟังก์ชั่น การยืมจาก VBA จะใช้ฟังก์ชันเพื่อคืนค่าและ Subs จะไม่ส่งคืนค่า คุณสามารถกำหนดหมวดย่อยและฟังก์ชั่นของคุณเองที่ใดก็ได้ด้านล่างของหน้าหลัก ดังนั้นในการใช้รหัสนี้เพื่อลบภาพคุณเพียงแค่วางมันลงในโมดูล

ใช้งานมาโคร

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

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

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

LibreOffice Basic

LibreOffice Basic นั้นคล้ายกับ VBA มาก แต่ความคล้ายคลึงนั้นก็สามารถหลอกลวงได้เช่นกันเนื่องจากโมเดลวัตถุนั้นแตกต่างกันอย่างสิ้นเชิงและไวยากรณ์ก็มีความแตกต่างกันมากมาย

ตัวอย่างเช่นใน VBA เมื่อคุณมีการอ้างอิงถึงวัตถุรูปภาพวัตถุรูปภาพจะมีวิธีการลบ ที่นี่วัตถุมีหรือสืบทอดวิธีการน้อยมาก ในการลบวัตถุภาพคุณใช้องค์ประกอบเอกสารที่มีโครงสร้างและไวยากรณ์คล้ายกับ DOM บนเบราว์เซอร์

LibreOffice Help มีลิงก์สำหรับการเริ่มต้นใช้งาน LibreOffice Basic


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

อัจฉริยภาพ :) และยังคงใช้งานได้ใน LibO Writer 5.1 มันอาจคุ้มค่าที่จะเพิ่ม
Dɑvïd

5

ฉันสมมติว่าข้อความในเอกสารถูกจัดรูปแบบและการบันทึกเป็นข้อความอย่างเดียวไม่เหมาะ ในกรณีนั้นเราสามารถใช้แนวทางค่อนข้างยาว:

  • สร้างโฟลเดอร์ชั่วคราว

  • เปิดเอกสารใน LibreOffice ตามปกติ

  • เลือกSave Asและที่นี่เลือกHTML Document (Writer) (.html)เป็นรูปแบบ

    • นอกจากนี้ให้ระบุโฟลเดอร์ชั่วคราวสำหรับปลายทางและตั้งชื่อที่เหมาะสมให้กับไฟล์ html ยอมรับSave as htmlและไม่ฟอร์แมตในหน้าจอถัดไป
  • ปิด LibreOffice

  • เปิดโฟลเดอร์ชั่วคราวที่สร้างขึ้นด้านบน คุณควรเห็นไฟล์ html หนึ่งไฟล์และรูปภาพจำนวนมาก

    • ลบภาพหากไม่ต้องการเพิ่มเติม
  • จากนั้นเปิด.htmlไฟล์ในเท็กซ์เอดิเตอร์ที่เหมาะสมเพื่อแยกแท็กที่จะทำให้เกิดช่องว่างในเอกสาร

    • ตัวอย่างเช่นใน Geany ฉันใช้<IMG SRC="[^>]+>เป็นนิพจน์การค้นหาและไม่มีอะไรในกล่อง "แทนที่ด้วย"

Geany

  • บันทึกไฟล์. html ตอนนี้เมื่อดูในเบราว์เซอร์หรือแม้กระทั่งใน LibreOffice จะไม่มีรูปภาพไม่มีตัวยึดตำแหน่งข้อความที่จัดรูปแบบ

แก้ไข: แทนที่จะใช้โปรแกรมแก้ไขข้อความบน GUI สมมติว่าหนึ่งอยู่ในโฟลเดอร์ที่เกี่ยวข้องและนั่นcli.htmlคือชื่อที่กำหนดในขณะที่บันทึกhtmlใน LibreOffice เราสามารถใช้บรรทัดคำสั่งด้วยวิธีนี้:

perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html

ไฟล์สำรองcli.html.bakถูกสร้างขึ้นในกรณี ...

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