Word 링크 및 참조를 .NET에서 사용하는 방법
이 가이드는 하이퍼링크, 북마크에 대한 교차 참조, 프롬프트 값 필드 및 인용 필드를 삽입하는 방법을 보여줍니다 Aspose.Words FOSS for .NET, 사용하여 FieldHyperlink, FieldRef, FieldPageRef, FieldCitation, 및 기타 링크와 참조 Field 하위 클래스가 있는 Aspose.Words.Fields 네임스페이스. 이 문서는 간단한 하이퍼링크 삽입, 북마크 생성 및 교차 참조, 필드 업데이트 중 값 입력 요청, 그리고 참고 문헌 인용을 다룹니다.
단계별 가이드
1단계: 패키지 설치
Aspose.Words FOSS for .NET은 아직 NuGet 패키지를 배포하지 않으므로, 대신 소스에서 라이브러리를 빌드하십시오. https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git을(를) 클론한 뒤, .NET SDK를 사용하여 Release 구성으로 Aspose.Words.sln을 빌드하고, 결과물인 Aspose.Words 어셈블리를 프로젝트에 참조합니다. 이 라이브러리는 .NET Standard 2.0을 대상으로 하므로 .NET Framework 4.6.2+ 및 .NET 6/8/10에서 실행됩니다.
2단계: 필요한 클래스 가져오기
Document와 DocumentBuilder에 대한 using Aspose.Words; 지시문을 추가하고, FieldHyperlink, FieldRef, FieldPageRef, FieldNoteRef, FieldStyleRef, FieldSet, FieldAsk, FieldFillIn, FieldCitation, FieldBibliography 및 이 가이드에서 다루는 다른 필드 클래스에 대한 using Aspose.Words.Fields; 지시문을 추가합니다.
단계 3: 하이퍼링크 삽입
간단한 하이퍼링크의 경우, DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark)을 호출하십시오 – URL 대상에는 isBookmark: false을 전달하고, 같은 문서 내의 북마크에 연결하려면 true를 사용합니다. 바로가기가 노출하지 않는 속성이 필요할 때는 FieldHyperlink을 직접 구성하십시오: Address와 SubAddress는 대상 URL 또는 문서 내 위치를 보관하고, ScreenTip은 툴팁을 설정하며, OpenInNewWindow와 IsImageMap은 표시 플래그이고, Target은 브라우저 프레임의 이름을 지정합니다.
단계 4: 참조할 북마크 만들기
DocumentBuilder.StartBookmark(bookmarkName)을 북마크가 포함할 콘텐츠 앞에 호출하고, DocumentBuilder.EndBookmark(bookmarkName)을 그 뒤에 호출하여 두 호출에 동일한 이름을 사용합니다. DocumentBuilder.MoveToBookmark(bookmarkName)는 이미 존재하는 북마크로 커서를 이동시킵니다 – 이는 해당 위치 근처에 교차 참조 필드를 삽입하기 전에 위치로 이동할 때 유용합니다.
단계 5: 해당 북마크에 교차 참조 삽입
FieldRef(REF 필드), FieldPageRef(PAGEREF), 그리고 FieldNoteRef(NOTEREF)는 각각 BookmarkName 속성을 통해 지정된 북마크의 콘텐츠를 가져옵니다. InsertHyperlink을 설정하면 참조를 클릭 가능하게 만들고, InsertRelativePosition을 설정하면 참조된 텍스트 자체가 아니라 상대 위치(“위” / “아래”)를 보고합니다. FieldRef는 추가로 단락 번호 매기기 옵션을 지원합니다 – InsertParagraphNumber, InsertParagraphNumberInFullContext, InsertParagraphNumberInRelativeContext, NumberSeparator – 및 IncludeNoteOrComment. FieldStyleRef(STYLEREF)는 북마크 대신 지정된 StyleName으로 서식 지정된 가장 가까운 단락을 찾으며, SearchFromBottom은 필드 위치에서 역방향으로 검색하도록 합니다. FieldSet(SET)는 북마크된 텍스트 값(BookmarkName 및 BookmarkText)을 정의하고, 이는 다른 곳의 REF 필드가 해석할 수 있습니다.
단계 6: 업데이트 중 값 입력 요청
FieldAsk (ASK) 및 FieldFillIn (FILLIN) 필드를 업데이트하는 사람에게 값을 요청합니다: set PromptText 사용자에게 표시되는 텍스트에, DefaultResponse 대체값으로, PromptOnceOnMailMerge 메일 병합 중 반복적인 프롬프트를 제한하기 위해. FieldAsk 추가로 답변을 다음 위치에 저장합니다 BookmarkName 다른 필드가 이를 참조할 수 있도록 합니다. 자동화된 필드 업데이트를 위해서는 대화형 프롬프트 대신 프로그래밍 방식으로 답변을 제공하십시오; 자세한 내용은 필드 가이드 이를 수행하는 콜백 인터페이스에 대해.
단계 7: 외부 또는 연결된 콘텐츠 참조
FieldDde (DDE)와 FieldDdeAuto (DDEAUTO)는 ProgId, SourceFullName, SourceItem를 통해 다른 애플리케이션의 콘텐츠에 연결되며, InsertAsText, InsertAsHtml, InsertAsPicture, InsertAsRtf, InsertAsUnicode, InsertAsBitmap는 삽입된 표현을 선택하고, AutoUpdate / IsLinked는 새로 고침 동작을 제어합니다. FieldLink (LINK)는 OLE-링크와 동등하며, FormatUpdateType를 추가합니다. FieldImport (IMPORT)와 FieldIncludePicture (INCLUDEPICTURE)는 SourceFullName와 GraphicFilter을 통해 외부 그래픽을 가져옵니다. FieldInclude (INCLUDE)와 FieldIncludeText (INCLUDETEXT)는 외부 문서 콘텐츠를 가져오며, BookmarkName는 포함 범위를 지정하고 LockFields는 새로 고침을 방지합니다; FieldIncludeText은 또한 XML 소스를 Encoding, MimeType, NamespaceMappings, XPath, XslTransformation를 통해 지원합니다.
단계 8: 빌딩 블록 및 용어집 항목 참조
FieldAutoText (AUTOTEXT), FieldAutoTextList (AUTOTEXTLIST), 및 FieldGlossary (GLOSSARY)는 모두 EntryName를 통해 명명된 빌딩 블록 항목을 참조합니다; FieldAutoTextList은 리스트 스타일 표시를 위해 ListStyle와 ScreenTip를 추가합니다.
단계 9: 인용 및 참고문헌 필드 삽입
FieldCitation (CITATION) 및 FieldBibliography (BIBLIOGRAPHY) 문서의 bibliography 데이터에서 가져온 콘텐츠를 렌더링합니다. 설정 FieldCitation.SourceTag (또는 대안 AnotherSourceTag) 어떤 source를 인용하는지 식별하고, 사용 Prefix, Suffix, PageNumber, VolumeNumber, 그리고 the Suppress* flags (SuppressAuthor, SuppressTitle, SuppressYear) citation이 어떻게 formatted되는지 제어합니다. FieldBibliography.SourceTag, FilterLanguageId, 그리고 FormatLanguageId 렌더링된 bibliography에 어떤 source가 표시되는지와 표시 언어를 제어합니다. 이러한 fields는 일치하는 Source 레코드가 존재합니다 – 보세요 참고문헌 가이드 그것들을 만들기 위해.
일반적인 문제와 해결 방법
REF, PAGEREF, 또는 NOTEREF 필드가 오류 결과를 표시합니다. 그 BookmarkName 문서에 대상이 존재하지 않습니다. 다음으로 북마크를 만들십시오. DocumentBuilder.StartBookmark() / EndBookmark() 필드를 업데이트하기 전에.
ASK 또는 FILLIN 필드가 자동 업데이트를 차단합니다. 답변을 프로그래밍 방식으로 제공할 콜백이 할당되지 않았습니다. 설명된 field-update 콜백을 할당하십시오. 필드 가이드, 또는 설정 DefaultResponse 필드에 fallback 값을 갖도록 설정합니다.
CITATION 또는 BIBLIOGRAPHY 필드가 비어 있게 렌더링됩니다 해당 SourceTag 일치하는 항목이 없습니다 Source 문서의 참고문헌 데이터에 없습니다. 일치하는 항목을 추가하세요 Source – 참고 참고문헌 가이드.
DDE, DDEAUTO 또는 LINK 필드가 새로 고쳐지지 않음 이러한 필드는 원래 Windows/OLE 컨텍스트 외부에서는 사용할 수 없는 외부 OLE 소스를 참조합니다. 해당 상황에서는 필드에 저장된 결과를 마지막으로 알려진 값으로 간주하십시오.
InsertHyperlink 로 삽입된 하이퍼링크에 내가 필요한 속성이 누락되었습니다 DocumentBuilder.InsertHyperlink() 는 모든 것을 노출하지 않는 바로 가기입니다 FieldHyperlink 속성. 구성하거나 가져옵니다 FieldHyperlink 직접 설정하여 다음과 같은 속성을 지정합니다 ScreenTip or IsImageMap.
자주 묻는 질문
FieldRef와 FieldStyleRef의 차이점은 무엇입니까?
FieldRef은(는) 지정된 북마크(BookmarkName)의 내용으로 해석됩니다; 반면 FieldStyleRef은(는) 북마크와 무관하게 주어진 StyleName으로 서식이 지정된 가장 가까운 단락으로 해석됩니다.
간단한 하이퍼링크를 필드를 직접 만들지 않고 삽입하려면 어떻게 해야 하나요?
DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark)를 호출하십시오.
이 링크 및 참조 필드 클래스들은 다른 필드와 별도의 네임스페이스에 있나요?
아니요 – FieldHyperlink, FieldRef, FieldCitation 및 여기서 다루는 나머지 클래스들은 Aspose.Words.Fields 네임스페이스에 있는 일반적인 Field 하위 클래스이며, 다른 모든 필드 유형에 사용되는 동일한 네임스페이스입니다.
인용 필드는 참고문헌 데이터 모델과 어떤 관계가 있습니까?
FieldCitation and FieldBibliography 조회하여 콘텐츠를 렌더링합니다 SourceTag 대비하여 Source 에 설명된 레코드 참고문헌 가이드 – 이 필드 클래스들은 렌더링을 처리하고, 반면 Source and Contributor 클래스는 기본 데이터를 보유합니다.
참조하기 전에 북마크를 어떻게 생성하나요?
DocumentBuilder.StartBookmark(bookmarkName)를 콘텐츠 앞에 호출하고, DocumentBuilder.EndBookmark(bookmarkName)를 그 뒤에 호출하십시오. 두 호출 모두 같은 이름을 사용합니다.