2012-09-26 6 views
3

C# 및 Open XML을 사용하여 URL의 이미지를 문서에 삽입하려고합니다. 이미지가 변경 될 수 있으므로 다운로드하지 않으려 고합니다. 외부 참조로 남기를 원합니다.OpenXml을 사용하여 단어 이미지에 외부 이미지를 추가하려면 어떻게해야합니까?

http://msdn.microsoft.com/en-us/library/bb497430.aspx

가 어떻게 그 URI를 취할 적응할 수 :

나는 나 로컬 이미지를 추가 할 수 있도록 이와 같은 몇 가지 예를 발견했습니다? 아니면 또 다른 접근 방식이 있습니까?

답변

5

당신은 빠른 부품 필드를 통해 Word 문서에 외부 이미지를 추가 할 수 있습니다. 설명은 superuser에 대한 다음 답변을 참조하십시오.

프로그래밍 당신이 URL에서 이미지를 포함하는 사용 외부 releationship에이 설명 된 단계를 실현합니다.

  1. 이 그림 클래스의 인스턴스를 만듭니다 여기

    이 작업을 수행하는 단계입니다.
  2. 는 그림 (너비/높이)의 스타일을 지정하는 모양을 추가합니다.
  3. 외부 releationship의 ID를 지정합니다 imageData의 클래스를 사용합니다.
  4. 주 문서 부분에 외부 releationship를 추가합니다. 외부의 관련 정보에 3 단계에서 지정한 동일한 ID를 지정하십시오.

다음 코드는 위에서 설명한 단계를 구현합니다. 이미지가 문서 word의 첫 번째 단락 에 추가됩니다.

using (WordprocessingDocument newDoc = WordprocessingDocument.Open(@"c:\temp\external_img.docx", true)) 
{ 
    var run = new Run(); 

    var picture = new Picture(); 

    var shape = new Shape() { Id = "_x0000_i1025", Style = "width:453.5pt;height:270.8pt" }; 
    var imageData = new ImageData() { RelationshipId = "rId56" }; 

    shape.Append(imageData); 

    picture.Append(shape); 

    run.Append(picture); 

    var paragraph = newdoc.MainDocumentPart.Document.Body.Elements<Paragraph>().FirstOrDefault(); 

    paragraph.Append(run);  

    newDoc.MainDocumentPart.AddExternalRelationship(
     "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", 
     new System.Uri("<url to your picture>", System.UriKind.Absolute), "rId56"); 
} 

위 코드에서 모양 유형을 정의하는 코드가 생략되었습니다. 나는 당신이 이미지에 외부 releationship와 워드 문서를 검사 할 OpenXML SDK productivity tool 같은 도구를 사용하는 것이 좋습니다.

관련 문제