목록 작업
Microsoft Word문서의 목록은 목록 서식 속성 집합입니다. 문서에서 목록을 사용하여 텍스트의 서식을 지정,정렬 및 강조 할 수 있습니다. 목록은 문서에서 데이터를 구성하는 좋은 방법이며 독자가 핵심 사항을 더 쉽게 이해할 수 있도록 합니다.
각 목록은 최대 9 개의 레벨을 가질 수 있으며 숫자 스타일,시작 값,들여 쓰기,탭 위치 등과 같은 서식 속성은 각 레벨에 대해 별도로 정의됩니다.
이 문서에서는Aspose.Words을 사용하여 목록을 프로그래밍 방식으로 작업하는 방법에 대해 설명합니다.
목록 서식을 적용하여 목록 만들기
Aspose.Words목록 서식을 적용하여 목록을 쉽게 만들 수 있습니다. DocumentBuilder는ListFormat개체를 반환하는ListFormat속성을 제공합니다. 이 개체에는 목록을 시작 및 종료하고 들여 쓰기를 늘리거나 줄이는 여러 가지 방법이 있습니다. Microsoft Word에는 두 가지 일반적인 유형의 목록이 있습니다.글머리 기호와 번호가 있습니다.:
- 글머리 기호 목록을 시작하려면ListFormat.ApplyBulletDefault을 호출합니다
- 번호 매기기 목록을 시작하려면ListFormat.ApplyNumberDefault을 호출합니다
글머리 기호 또는 숫자 및 서식은 글머리 기호 목록 서식을 중지하기 위해RemoveNumbers이 호출될 때까지 현재 단락 및DocumentBuilder을 사용하여 생성된 모든 추가 단락에 추가됩니다.
워드 문서에서 목록은 최대 9 개의 레벨로 구성될 수 있습니다. 각 레벨에 대한 목록 서식은 사용되는 글 머리 기호 또는 숫자,왼쪽 들여 쓰기,글 머리 기호와 텍스트 사이의 공간 등을 지정합니다. 다음 방법은 목록 수준을 변경하고 새 수준의 서식 속성을 적용합니다:
- 현재 단락의 목록 수준을 한 수준 높이려면ListFormat.ListIndent을 호출합니다
- 현재 단락의 목록 수준을 한 수준 줄이려면ListFormat.ListOutdent을 호출합니다
이 메서드는 목록 수준을 변경하고 새 수준의 서식 속성을 적용합니다.
다음 코드 예제에서는 다단계 목록을 작성하는 방법을 보여 줍니다:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetMultilevelListFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getListFormat().applyNumberDefault(); | |
builder.writeln("Item 1"); | |
builder.writeln("Item 2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1"); | |
builder.writeln("Item 2.2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1.1"); | |
builder.writeln("Item 2.2.2"); | |
builder.getListFormat().listOutdent(); | |
builder.writeln("Item 3"); | |
builder.getListFormat().removeNumbers(); | |
doc.save(dataDir + "output.doc"); |
목록 수준에 대한 서식 지정
목록 수준 개체는 목록을 만들 때 자동으로 만들어집니다. ListLevel클래스의 속성과 메서드를 사용하여 목록의 개별 수준의 서식을 제어합니다.
각 섹션에 대한 목록을 다시 시작
IsRestartAtEachSection속성을 사용하여 각 섹션에 대한 목록을 다시 시작할 수 있습니다. 이 옵션은RTF,DOC및DOCX문서 형식에서만 지원됩니다. 이 옵션은OoxmlCompliance보다 높은 경우에만DOCX에 기록됩니다.
다음 코드 예제에서는 목록을 만들고 각 섹션에 대해 목록을 다시 시작하는 방법을 보여 줍니다:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
doc.getLists().add(ListTemplate.NUMBER_DEFAULT); | |
com.aspose.words.List list = doc.getLists().get(0); | |
// Set true to specify that the list has to be restarted at each section. | |
list.isRestartAtEachSection(true); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getListFormat().setList(list); | |
for (int i = 1; i < 45; i++) { | |
builder.writeln(String.format("List Item " + i)); | |
// Insert section break. | |
if (i == 15) | |
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE); | |
} | |
builder.getListFormat().removeNumbers(); | |
// IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.Ecma376 | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); | |
options.setCompliance(OoxmlCompliance.ISO_29500_2008_TRANSITIONAL); | |
dataDir = dataDir + "RestartAtEachSection_out.docx"; | |
// Save the document to disk. | |
doc.save(dataDir, options); |