2009-03-14 2 views
7

이동하거나 이름을 바꾼 DOCX 파일을 식별 할 수있는 방법을 찾고 있습니다. 이유는 분명합니다. Open XML SDK를 사용하여 하이퍼 링크 검사기를 만들고 있습니다.DOCX (Open XML WordprocessingDocument)의 고유 ID에 가장 적합한 위치

적어도 완벽하게 작동하여 문서의 하이퍼 링크를 추가하거나 업데이트 할 수 있습니다.

그러나 외부 파일 (source.docx + target.docx에서 targetB.docx)의 이름을 바꾸면 문제가 발생합니다. 링크 된 파일이 주어진 위치에 있는지 단순히 확인하여 깨진 링크를 찾을 수 있습니다.

하지만 더 많이 원합니다. 나는이 잃어버린 링크를 복구 할 수 있기를 원한다. 디렉토리 (docx)에있는 모든 문서를 검색하고 그것이 "대상"인지 검사한다. 가장 간단한 방법은 문서 속성의 어딘가에 저장된 GUID 여야하며 문서의 이름을 변경하거나 편집하면 (체크섬은 적용 할 수 없음) 변경되지 않습니다.

그런 다음 별도의 링크 목록과 ID에 따라 문서를 만들면 링크가 업데이트됩니다. 나는 그 개념이 분명하기를 희망한다.

그래서 몇 가지 기본적인 질문이 있습니다 :

  • 가 오픈 XML 문서에 이 "사용자 정보"를 저장하는 "가장 좋은 방법은"거기에
  • 합니까 이미 wordprocessingdocument (DOCX) 몇 가지 고유 식별자는 말씀
  • 에 의해 을 만든 당신이
(GUID 하이퍼 링크 대상의) 매핑을 절약 할 수
  • 나는 명확히하려고하지 않을 경우

    난 그냥 질문 .. 경우

    감사합니다, 크리스

  • 답변

    0

    아크로뱃/PDF 비슷한 무언가가 주석, 문제는 분명하다 바랍니다. unqiue 번호를 입력하여 문서를 식별하는 데 사용되는 Bates numbering을 찾습니다.

    일반적으로 메타 데이터 섹션에 배치해야합니다 (있는 경우). 또는 매핑을 유지하는 docx 파일에 사용자 정의 부분을 추가하십시오 (물론 스펙의 범위 내에 있어야합니다). (나는 docx 형식에 익숙하지 않아서 이것을 이해할 수있을 것이다.)

    1

    5 년 전 이었기 때문에 나는 당신이 대답을 찾길 희망한다. 다른 사람이 이에 관심이있는 경우 ZIP 보관 파일 (\ docProps \ custom.xml)에 새로운 맞춤 속성을 만들고 그 안에 메타 데이터를 저장하는 것이 가장 좋습니다. 가장 쉬운 방법은 그들이 일하는 방식을 볼 수 말씀 UI에서 키를 생성하는 것입니다,하지만 당신은 같은 보이는 DOCX 아카이브 내부에있는 Custom.xml하게 될 겁니다 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"> 
        <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="test"> 
        <vt:lpwstr>chris</vt:lpwstr> 
        </property> 
    </Properties> 
    

    이러한 작업이 모두 문서화되어 어떻게 ECMA 376에서 파일 형식을 문서화하는 표준입니다.

    내가 아는 한, Word는 GUID를 저장하지 않으므로 파일을 고유하게 식별 할 수 있습니다.

    관련 문제