우분투 12.04
LibreOffice Writer의 문서에서 모든 이미지를 제거하고 싶습니다. 내 문서에는 ~ 350 개의 이미지가 있습니다. 하나씩 삭제 하지 않고 일괄 삭제하는 방법이 있습니까? 도구> 옵션> LibreOffice Writer>보기> 표시> "그래픽 및 개체"를 선택 해제했습니다. 그러나 자리 표시자는 여전히 표시됩니다.
편집 : 페이지를 일반 텍스트 파일로 저장하는 방법을 알고 있지만 문서에서 서식을 지정해야합니다.
우분투 12.04
LibreOffice Writer의 문서에서 모든 이미지를 제거하고 싶습니다. 내 문서에는 ~ 350 개의 이미지가 있습니다. 하나씩 삭제 하지 않고 일괄 삭제하는 방법이 있습니까? 도구> 옵션> LibreOffice Writer>보기> 표시> "그래픽 및 개체"를 선택 해제했습니다. 그러나 자리 표시자는 여전히 표시됩니다.
편집 : 페이지를 일반 텍스트 파일로 저장하는 방법을 알고 있지만 문서에서 서식을 지정해야합니다.
답변:
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을 시작하기위한 링크가 있습니다.
문서의 텍스트가 형식화되어 텍스트 전용으로 저장하는 것이 이상적이지 않다고 가정합니다. 이 경우 다소 긴 접근 방식을 취할 수 있습니다.
임시 폴더를 만듭니다.
LibreOffice에서 문서를 정상적으로 엽니 다.
형식을 선택 Save As하고 여기에서 선택하십시오 HTML Document (Writer) (.html).
Save as html다음 화면에서 형식에 동의 하고 odt하지 마십시오.LibreOffice를 닫습니다.
위에서 만든 임시 폴더를 엽니 다. 하나의 html 파일과 많은 이미지 가 표시되어야합니다 .
그런 다음 .html적절한 텍스트 편집기에서 파일을 열어서 태그가 제거되면 문서에 공백이 생길 수 있습니다.
<IMG SRC="[^>]+>검색 표현식으로 사용 했으며 "바꾸기"상자에는 아무 것도 사용하지 않았습니다.
편집 : GUI 기반 텍스트 편집기를 사용하는 대신 하나가 관련 폴더에 있고 LibreOffice에 cli.html저장하는 동안 주어진 이름 이라고 가정하면 다음과 html같이 명령 줄을 사용할 수 있습니다.
perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html
백업 파일 cli.html.bak은 다음과 같은 경우에 생성됩니다.