LibreOffice Writer에서 문서의 모든 이미지를 제거하는 방법은 무엇입니까?


10

우분투 12.04

LibreOffice Writer의 문서에서 모든 이미지를 제거하고 싶습니다. 내 문서에는 ~ 350 개의 이미지가 있습니다. 하나씩 삭제 하지 않고 일괄 삭제하는 방법이 있습니까? 도구> 옵션> LibreOffice Writer>보기> 표시> "그래픽 및 개체"를 선택 해제했습니다. 그러나 자리 표시자는 여전히 표시됩니다.

편집 : 페이지를 일반 텍스트 파일로 저장하는 방법을 알고 있지만 문서에서 서식을 지정해야합니다.


@Chelia : "다른 이름으로 저장"환경 설정에서 문서를 텍스트 전용 파일로 저장해 보셨습니까?
stephenmyall 2013

그러나 왜 "옵션> 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 라이브러리와 내장 Module1을 사용할 수 있습니다.

매크로 대화 상자가 열리면 Module1을 강조 표시 하고 편집을 누르 십시오 . IDE가 열립니다.

코드는 서브와 함수로 구성됩니다. VBA에서 빌려온 함수는 값을 반환하는 데 사용되고 Subs는 값을 반환하지 않습니다. Main 아래 어디에서나 자신의 서브와 기능을 정의 할 수 있습니다. 따라서이 코드를 사용하여 이미지를 제거하려면 모듈에 붙여 넣기 만하면됩니다.

매크로 사용

실행할 Sub 내부의 아무 곳이나 클릭하여 IDE에서 바로 코드를 실행할 수 있습니다 F5. 함수는 값을 반환하므로 Sub에서 호출해야합니다. 대화 상자 단추 나 메뉴를 사용하여 코드를 실행할 수도 있습니다. IDE에는 통합 디버거가 포함되어 있으며 새 코드를 작성할 때 중요합니다.

다음에 매크로 대화 상자를 열면 하위가 매크로로 표시되어 IDE를 열지 않고도 실행할 수 있습니다. 메뉴 또는 도구 모음 항목에 개별 매크로를 할당 할 수도 있습니다.

참고 : 이 매크로는 활성 문서에 관계없이 실행됩니다. 메뉴 또는 매크로 대화 상자에서 매크로를 실행하는 경우 버튼을 누른 문서라고 가정 할 수 있습니다. 그러나 IDE를 사용하여 코드를 작성, 실행 또는 디버그 할 때 다른 문서를 활성 문서로 만들지 않았는지 확인하십시오.

LibreOffice Basic

LibreOffice Basic은 VBA와 매우 유사하지만 개체 모델이 완전히 다르고 구문에도 많은 차이가 있기 때문에 유사성도 속일 수 있습니다.

예를 들어 VBA에서 이미지 객체에 대한 참조가 있으면 이미지 객체는 delete 메소드를 갖게됩니다. 여기서 객체는 메소드가 거의 없거나 상속되지 않습니다. 이미지 객체를 삭제하려면 브라우저 기반 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다음 화면에서 형식에 동의 하고 odt하지 마십시오.
  • LibreOffice를 닫습니다.

  • 위에서 만든 임시 폴더를 엽니 다. 하나의 html 파일과 많은 이미지 가 표시되어야합니다 .

    • 더 이상 필요하지 않으면 이미지를 삭제하십시오.
  • 그런 다음 .html적절한 텍스트 편집기에서 파일을 열어서 태그가 제거되면 문서에 공백이 생길 수 있습니다.

    • 예를 들어 Geany에서는 <IMG SRC="[^>]+>검색 표현식으로 사용 했으며 "바꾸기"상자에는 아무 것도 사용하지 않았습니다.

게니

  • .html 파일을 저장하십시오. 이제는 브라우저 나 LibreOffice에서 볼 때 이미지, 자리 표시 자, 형식이 지정된 텍스트가 없습니다.

편집 : GUI 기반 텍스트 편집기를 사용하는 대신 하나가 관련 폴더에 있고 LibreOffice에 cli.html저장하는 동안 주어진 이름 이라고 가정하면 다음과 html같이 명령 줄을 사용할 수 있습니다.

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

백업 파일 cli.html.bak은 다음과 같은 경우에 생성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.