우분투 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
은 다음과 같은 경우에 생성됩니다.