2017-11-17 5 views
3

문서의 특정 제목을 검색하려고합니다. 그런 다음 해당 제목의 모든 내용을 삭제해야합니다. 문서에는 많은 표제가 있으며 각 표제는 단락, 표, 이미지를 모두 또는 어떤 조합으로 가질 수 있습니다.Python을 사용하여 특정 제목 아래에있는 이미지 블러 링 docx

docx를 설치 했으므로 특정 표제를 검색하고 단락, 표를 찾아 낼 수있었습니다.

이제 해당 제목 아래 이미지에 액세스 할 수 없습니다. 이미지가 삼진 상태임을 나타 내기 위해 이미지를 흐리게 처리하려고합니다.

문제 1 : 문서의 모든 이미지에 대한 이미지 ID (리소스 ID), 이미지 이름을 가져올 수 있습니다. 하지만 특정 제목 아래에있는 이미지에 대한 리소스 ID를 얻는 방법을 모르겠다. 그런 다음이를 흐리게 처리해야합니다.

문제점 2 : 파이썬 코드에서 VBMacro를 사용하여 변경 내용 추적 옵션을 사용하도록 설정했습니다. 하지만 내가 변경 내용을 docx (삼진)를 사용하여 추적에 대한 강조 표시되지 않습니다.

답변

1

다음은 두 개의 개별 질문입니다 (또는 계산 방법에 따라 3 가지). 여기에서 첫 번째 질문에 답할 것이고 다른 질문은 별도의 새 질문으로 게시 할 수 있습니다. (아마도 : "python-pptx를 사용하여 Word 문서의 변경 내용을 추적하는 방법").

  1. 문서의 특정 영역과 관련된 이미지를 확인 : 이미지를 흐리게에 관한

    두 가지 문제가 있습니다.

  2. 이미지가 흐리게 보입니다.

python-docx에는 이러한 연산 중 하나에 대한 직접 API 지원이 없습니다. 그러나 python-docx을 사용하여 기본 XML에 액세스하고 lxml 호출 (내부적으로는 python-docx)을 사용하여 변경 작업을 수행 할 수 있습니다. 이러한 노력은 일반적으로 "회피 기능"으로 불려지므로 Google에서 'python-docx 또는 python-pptx 해결 방법'을 검색하면 예제를 찾을 수 있습니다.

인라인 이미지는 Run 레벨에 저장됩니다. 따라서 관심있는 섹션에서 모든 실행을 반복하고 이미지가있는 지 확인하십시오.

http://python-docx.readthedocs.io/en/latest/dev/analysis/features/shapes/shapes-inline.html은 기본적으로 당신이 이런 식으로 뭔가를 할 거라고 :

for run in runs: # however you decide to get the runs 
    r = run._element # this is the `<w:r>` XML element for the run 
    pics = r.xpath('.//w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic') 
    if not pics: 
     break 
    print(r.xml) # if you want to see the XML for this run 

이 사진을 포함하는 실행 요소에 대한 XML을 인쇄 할 python-docx 프로젝트에서이 분석 페이지는 당신이 필요합니다 세부 사항의 일부를 가지고있다.

  1. 는 "흐리게"버전과 현재 사진을 교체 : 실제 흐림에 관한

    는, 내가 생각할 수있는 두 가지 방법이 있습니다.
  2. Word에서 이미지의 투명도를 변경하여 훨씬 밝게 보입니다. 이렇게하면 이미지에서 세부 정보가 제거되지 않고 사용자가 마우스 오른쪽 버튼을 클릭하여 "이미지 저장 ..."을 선택하려는 경우 변경되지 않은 채로 실제 이미지가 변경되지 않은 채 그대로 유지됩니다.

두 번째 방법은 훨씬 쉽습니다. 요구 사항을 충족하는지 여부를 결정해야합니다.

어떤 방법으로 가고 싶은지 결정한 후에는 해당 문제에 대한 해결책을 검색하거나 해당 주제에 초점을 맞춘 새로운 질문을 제출할 수 있습니다.

+0

@ Scanny, 내가 언급 한 코드를 사용했고 다음과 같은 방법으로 리소스 ID, 문서 파트 및 이미지 파트를 얻었습니다. rID = pics [0] .blipFill.blip.attrib.values ​​() document_part = document.part image_part = document_part.related_parts [rID [0]] – Ammu