ใช้DocumentBuilderเพื่อแก้ไขเอกสาร

การระบุการจัดรูปแบบ

การจัดรูปแบบแบบอักษร

การจัดรูปแบบแบบอักษรปัจจุบันจะแสดงโดยออบเจกต์Fontที่ส่งคืนโดยคุณสมบัติDocumentBuilder.Font คลาสFontประกอบด้วยคุณสมบัติแบบอักษรที่หลากหลายที่เป็นไปได้ในMicrosoft Word.

font-formatting-aspose-words-java
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการตั้งค่าการจัดรูปแบบแบบอักษร.

การจัดรูปแบบเซลล์

การจัดรูปแบบเซลล์ถูกนำมาใช้ในระหว่างการสร้างตาราง ออบเจกต์CellFormatที่ส่งคืนโดยคุณสมบัติDocumentBuilder.CellFormat CellFormatห่อหุ้มคุณสมบัติของเซลล์ตารางต่างๆเช่นความกว้างหรือแนวตั้ง.

cell-formatting-aspose-words-java
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างตารางที่ประกอบด้วยเซลล์รูปแบบเดียว.

การจัดรูปแบบแถว

การจัดรูปแบบแถวปัจจุบันจะถูกกำหนดโดยRowFormatวัตถุที่ถูกส่งคืนโดยคุณสมบัติDocumentBuilder.RowFormat วัตถุห่อหุ้มข้อมูลเกี่ยวกับการจัดรูปแบบแถวตารางทั้งหมด.

row-formatting-aspose-words-java
ตัวอย่างเป็นlow codeแสดงวิธีการสร้างตารางที่มีเซลล์เดียวและใช้การจัดรูปแบบแถว.

การจัดรูปแบบรายการ

Aspose.Wordsช่วยให้การสร้างง่ายของรายการโดยการใช้การจัดรูปแบบรายการ DocumentBuilderให้คุณDocumentBuilder.ListFormatที่ส่งกลับวัตถุListFormat วัตถุนี้มีหลายวิธีในการเริ่มต้นและสิ้นสุดรายการและการเพิ่ม/ลดการเยื้อง.

list-fformatting-aspose-words-java
มีสองประเภททั่วไปของรายการในMicrosoft Word:สัญลักษณ์แสดงหัวข้อย่อยและหมายเลข.
  • ในการเริ่มต้นรายการที่มีสัญลักษณ์แสดงหัวข้อย่อยให้โทรListFormat.applyBulletDefault.
  • ในการเริ่มรายการหมายเลขให้โทรListFormat.applyNumberDefault.

นย่อหน้าปัจจุบันและย่อหน้าต่อไปทั้งหมดที่สร้างขึ้นโดยใช้DocumentBuilderจนกระทั่งListFormat.removeNumbersถูกเรียกว่าเพื่อหยุดกา.

ในคำเอกสารรายการอาจประกอบด้วยถึงเก้าระดับ การจัดรูปแบบรายการสำหรับแต่ละระดับระบุสิ่งที่กระสุนหรือหมายเลขที่ใช้เยื้องซ้ายช่องว่.

  • หากต้องการเพิ่มระดับรายการของย่อหน้าปัจจุบันโดยหนึ่งระดับให้โทรListFormat.listIndent.
  • เมื่อต้องการลดระดับรายการของย่อหน้าปัจจุบันโดยหนึ่งระดับให้โทรListFormat.listOutdent.

เมธอดเปลี่ยนระดับรายการและใช้คุณสมบัติการจัดรูปแบบของระดับใหม่.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างรายการหลายระดับ.

การตั้งค่าหน้าเว็บและการจัดรูปแบบส่วน

ตั้งค่าหน้าเว็บและส่วนคุณสมบัติถูกห่อหุ้มในPageSetupวัตถุที่ถูกส่งคืนโดยคุณสมบัติDocumentBuilder.PageSetup วัตถุประกอบด้วยแอตทริบิวต์การตั้งค่าหน้าเว็บทั้งหมดของส่วน(ขอบซ้ายขอบล่างขนาดกระด.

section-formatting-aspose-words-java
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าคุณสมบัติเช่นขนาดหน้าและการวางแนวสำหรับส่วน.

การใช้สไตล์

ออบเจกต์การจัดรูปแบบบางอย่างเช่นแบบอักษรหรือParagraphFormatรูปแบบการสนับสนุน สไตล์ที่ผู้ใช้กำหนดในตัวเดียวจะแสดงโดยออบเจกต์Styleที่มีคุณสมบัติลักษณะที่สอดคล้องกันเช่น.

นอกจากนี้ออบเจกต์StyleมีคุณสมบัติStyle.getStyleIdentifierที่ส่งคืนตัวระบุสไตล์อิสระโลแคลที่แสดงโดยค่าการแจงนับStyle.StyleIdentifier ประเด็นคือชื่อของลักษณะในตัวในMicrosoft Wordเป็นภาษาท้องถิ่นสำหรับภาษาที่แตกต่างกัน ใช้ตัวระบุลักษณะคุณสามารถค้นหาลักษณะที่ถูกต้องโดยไม่คำนึงถึงภาษาของเอกสาร ค่าการแจงนับสอดคล้องกับรูปแบบในตัวMicrosoft Wordเช่นปกติ,Heading 1,Heading 2เป็นต้น รูปแบบที่ผู้ใช้กำหนดทั้งหมดจะถูกกำหนดStyleIdentifier.User value.

apply-style-aspose-words-java
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการใช้ลักษณะย่อหน้า.

เส้นขอบและการแรเงา

เส้นขอบจะแสดงด้วยBorderCollection นี่คือคอลเลกชันของวัตถุเส้นขอบที่เข้าถึงโดยดัชนีหรือตามชนิดของเส้นขอบ ประเภทเส้นขอบจะแสดงโดยการแจงนับBorderType ค่าบางอย่างของการนับมีผลบังคับใช้กับหลายหรือเพียงองค์ประกอบเอกสารหนึ่ง ตัวอย่างเช่นBorderType.Bottomใช้ได้กับย่อหน้าหรือเซลล์ตารางในขณะที่BorderType.DiagonalDownระบุขอบเส้นทแยงมุมในเซลล์ตาราง.

ทั้งคอลเลกชันชายแดนและแต่ละชายแดนแยกต่างหากมีคุณลักษณะที่คล้ายกันเช่นสีลักษณะเส้ คุณสมบัติของชื่อเดียวกัน คุณสามารถบรรลุประเภทเส้นขอบที่แตกต่างกันโดยการรวมค่าคุณสมบัติ นอกจากนี้วัตถุทั้งBorderCollectionและBorderช่วยให้คุณสามารถรีเซ็ตค่าเหล่านี้เป็นค่าเริ่มต้นโดยการเรียกวิธีการBorder.clearFormatting โปรดทราบว่าเมื่อรีเซ็ตคุณสมบัติเส้นขอบเป็นค่าเริ่มต้นเส้นขอบจะมองไม่เห็น.

set-borders-shading-aspose-words-java
คลาสShadingประกอบด้วยแอตทริบิวต์การแรเงาสำหรับอิลิเมนต์เอกสาร คุณสามารถตั้งค่าพื้นผิวการแรเงาที่ต้องการและสีที่ใช้กับพื้นหลังและเบื้องหน้าขององค์ป.

รงแรเงาถูกตั้งค่าด้วย TextureIndex ค่าการนับที่ช่วยให้การประยุกต์ใช้รูปแบบต่างๆไปยังวัตถุShading ตัวอย่างเช่นเมื่อต้องการตั้งค่าสีพื้นหลังสำหรับองค์ประกอบเอกสารให้ใช้ TextureIndex.TextureSolid ค่าและตั้งค่าสีแรเงาเบื้องหน้าตามความเหมาะสม.

borders-and-shading-aspose-words-java
ตัวอย่างด้านล่างแสดงวิธีการใช้เส้นขอบและการแรเงากับย่อหน้า.

สแนปไปยังตาราง

Aspose.WordsมีสองคุณสมบัติParagraphFormat.SnapToGridและFont.SnapToGridที่จะได้รับและการตั้งค่าคุณสมบัติย่อหน้าสแน็ปในตาราง

การย้ายเคอร์เซอร์

การตรวจหาตำแหน่งเคอร์เซอร์ปัจจุบัน

คุณสามารถขอรับตำแหน่งเคอร์เซอร์ของผู้สร้างในปัจจุบันได้ตลอดเวลา คุณสมบัติDocumentBuilder.getCurrentNodeจะส่งคืนโหนดที่เลือกอยู่ในตัวสร้างนี้ในปัจจุบัน โหนดเป็นลูกโดยตรงของย่อหน้า การแทรกการดำเนินการใดๆที่คุณดำเนินการโดยใช้DocumentBuilderจะแทรกก่อนDocumentBuilder.CurrentNode เมื่อย่อหน้าปัจจุบันว่างเปล่าหรือวางเคอร์เซอร์ไว้ก่อนสิ้นย่อหน้าDocumentBuilder.CurrentNodeจะเป็นโมฆะ.

นอกจากนี้คุณสามารถใช้คุณสมบัติDocumentBuilder.getCurrentParagraphซึ่งได้รับย่อหน้าที่ถูกเลือกในDocumentBuilderนี้ ตัวอย่างเป็นlow codeแสดงวิธีเข้าถึงโหนดปัจจุบันในตัวสร้างเอกสาร.

ย้ายไปยังโหนดใดๆ(ย่อหน้าและบุตรหลานของพวกเขา)

ถ้าคุณมีโหนดวัตถุเอกสารซึ่งเป็นย่อหน้าหรือลูกโดยตรงของย่อหน้าคุณสามารถชี้เคอร์เซอร์ ใช้วิธีการDocumentBuilder.moveToเพื่อดำเนินการนี้. ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปยังโหนดที่ระบุ.

การย้ายไปยังเอกสารเริ่มต้น/สิ้นสุด

หากคุณต้องการย้ายไปยังจุดเริ่มต้นของเอกสารโทรDocumentBuilder.moveToDocumentStart ถ้าคุณต้องการที่จะย้ายไปยังส่วนท้ายของเอกสาร,โทรDocumentBuilder.moveToDocumentEnd.

การย้ายไปยังส่วน

หากคุณกำลังทำงานกับเอกสารที่มีหลายส่วนคุณสามารถย้ายไปยังส่วนที่ต้องการโดยใช้DocumentBuilder.moveToSection เมธอดนี้จะเลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของส่วนที่ระบุและยอมรับดัชนีของส่วนที่ต้องการ เมื่อดัชนีส่วนมากกว่าหรือเท่ากับ 0 จะระบุดัชนีจากจุดเริ่มต้นของเอกสารด้วย 0 เป็นส่วนแรก เมื่อดัชนีส่วนน้อยกว่า 0 จะระบุดัชนีจากส่วนท้ายของเอกสารด้วย -1 เป็นส่วนสุดท้าย ตัวอย่างเป็นlow codeแสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปยังส่วนที่ระบุ คุณสามารถดาวน์โหลดไฟล์แม่แบบของตัวอย่างนี้ได้จาก ที่นี่.

การย้ายไปยังส่วนหัว/ส่วนท้าย

เมื่อคุณต้องการวางข้อมูลบางอย่างลงในส่วนหัวหรือส่วนท้าย,คุณควรย้ายไปที่นั่นก่อนโดยใช้DocumentBuilder.moveToHeaderFooter.เมธอดยอมรับค่าการแจงนับHeaderFooterTypeที่ระบุชนิดของส่วนหัวหรือส่วนท้ายที่ควรย้ายเคอร์เซอร์.

หากคุณต้องการสร้างส่วนหัวและท้ายกระดาษที่แตกต่างกันสำหรับหน้าแรกคุณต้องตั้งค่าคุณสมบัติPageSetup.getDifferentFirstPageHeaderFooterเป็นtrue หากคุณต้องการสร้างส่วนหัวและท้ายกระดาษที่แตกต่างกันสำหรับหน้าคู่และหน้าคี่คุณต้องตั้งPageSetup.getOddAndEvenPagesHeaderFooterถึงtrue.

หากคุณต้องการกลับไปที่เรื่องราวหลักให้ใช้DocumentBuilder.moveToSectionเพื่อย้ายออกจากส่วนหัวหรือส่วนท้าย ตัวอย่างด้านล่างจะสร้างส่วนหัวและท้ายกระดาษในเอกสารโดยใช้DocumentBuilder.

การย้ายไปยังย่อหน้า

ใช้DocumentBuilder.moveToParagraphเพื่อย้ายเคอร์เซอร์ไปยังย่อหน้าที่ต้องการในส่วนปัจจุบัน คุณควรส่งพารามิเตอร์สองตัวไปยังวิธีนี้:paragraphIndex(ดัชนีของย่อหน้าที่จะย้ายไป)และcharacterIndex(ดัชนีของอักขระภาย.

การนำทางจะดำเนินการภายในเรื่องปัจจุบันของส่วนปัจจุบัน อร์เซอร์ไปยังส่วนหัวหลักของส่วนแรกแล้วparagraphIndexจะระบุดัชนีของย่อหน้าภายในส่วนหัวของส่วนนั้น.

เมื่อparagraphIndexมากกว่าหรือเท่ากับ 0 จะระบุดัชนีจากจุดเริ่มต้นของส่วนที่มี 0 เป็นย่อหน้าแรก เมื่อparagraphIndexน้อยกว่า 0 จะระบุดัชนีจากส่วนท้ายของส่วนที่มี -1 เป็นย่อหน้าสุดท้าย ขณะนี้ดัชนีอักขระสามารถระบุเป็น 0 เพื่อย้ายไปยังจุดเริ่มต้นของย่อหน้าหรือ -1 เพื่อย้ายไปยัง ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปยังย่อหน้าที่ คุณสามารถดาวน์โหลดไฟล์แม่แบบของตัวอย่างนี้ได้จาก ที่นี่.

การย้ายไปยังเซลล์ตาราง

ใช้DocumentBuilder.moveToCellหากคุณต้องการเลื่อนเคอร์เซอร์ไปยังเซลล์ตารางในส่วนปัจจุบัน วิธีนี้ยอมรับสี่พารามิเตอร์:

  • tableIndex-ดัชนีของตารางที่จะย้ายไป.
  • rowIndex-ดัชนีของแถวในตาราง.
  • columnIndex-ดัชนีของคอลัมน์ในตาราง.
  • characterIndex-ดัชนีของอักขระภายในเซลล์.

การนำทางจะดำเนินการภายในเรื่องปัจจุบันของส่วนปัจจุบัน.

สำหรับพารามิเตอร์ดัชนีเมื่อดัชนีมากกว่าหรือเท่ากับ 0 จะระบุดัชนีตั้งแต่ต้นด้วย 0 เป็นองค์ป เมื่อดัชนีน้อยกว่า 0 จะระบุดัชนีจากจุดสิ้นสุดด้วย -1 เป็นองค์ประกอบสุดท้าย.

นอกจากนี้โปรดทราบว่าcharacterIndexขณะนี้สามารถระบุได้เพียง 0 เพื่อย้ายไปยังจุดเริ่มต้นของเซลล์หรือ -1 เพื่อย้ายไปยังจุดสิ้นสุดของเซลล์ ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปยังเซลล์ตารางที่ระบุ คุณสามารถดาวน์โหลดไฟล์แม่แบบของตัวอย่างนี้ได้จาก ที่นี่.

การย้ายไปยังบุ๊กมาร์ก

ที่คั่นหน้าจะใช้บ่อยเพื่อทำเครื่องหมายสถานที่เฉพาะในเอกสารที่จะแทรกองค์ประกอบใหม่ เมื่อต้องการย้ายไปยังบุ๊กมาร์กใช้DocumentBuilder.moveToBookmark วิธีการนี้มีสองเกินพิกัด ที่ง่ายที่สุดยอมรับอะไรแต่ชื่อของบุ๊คมาร์คที่เคอร์เซอร์จะถูกย้าย ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปยังบุ๊กมาร์ก.

การโอเวอร์โหลดนี้จะเลื่อนเคอร์เซอร์ไปยังตำแหน่งหลังจากที่เริ่มต้นของบุ๊กมาร์กที่มีชื่อ เกินพิกัดอีกDocumentBuilder.moveToBookmarkเลื่อนเคอร์เซอร์ไปยังบุ๊กมาร์กที่มีความแม่นยำมากขึ้น มันยอมรับสองพารามิเตอร์บูลีน:

  • isStartกำหนดว่าจะย้ายเคอร์เซอร์ไปยังจุดเริ่มต้นหรือจุดสิ้นสุดของบุ๊กมาร์ก.
  • isAfterกำหนดว่าจะย้ายเคอร์เซอร์ไปหลังตำแหน่งเริ่มต้นหรือจุดสิ้นสุดของบุ๊กมาร์กหรือเลื่อนเคอร์เซอร์ไปก่อนตำแหน่งเริ่มต้นหรือจุดสิ้นสุดของบุ๊กมาร์ก.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายตำแหน่งเคอร์เซอร์ไปหลังจากจบบุ๊กมาร์ก.

การแทรกข้อความใหม่ในลักษณะนี้ไม่ได้แทนที่ข้อความที่มีอยู่ของบุ๊กมาร์ก โปรดทราบว่าบุ๊กมาร์กบางอย่างในเอกสารถูกกำหนดให้กับเขตข้อมูลแบบฟอร์ม ย้ายไปยังบุ๊คมาร์คดังกล่าวและการแทรกข้อความที่มีแทรกข้อความลงในรหัสฟิลด์แบบฟอร์ม แม้ว่านี้จะไม่ทำให้ฟิลด์ฟอร์มเป็นโมฆะข้อความที่แทรกจะไม่สามารถมองเห็นได้เนื่องจาก.

ย้ายไปยังช่องMerge

บางครั้งคุณอาจต้องดำเนินการ"คู่มือ"Mail Mergeโดยใช้DocumentBuilderหรือกรอกข้อมูลผสานในลักษณะพิเศษภายในMail Mergeตัวจัดการเหตุการณ์ นั่นคือเมื่อDocumentBuilder.moveToMergeFieldอาจมีประโยชน์ เมธอดยอมรับชื่อของฟิลด์ผสาน ย้ายเคอร์เซอร์ไปยังตำแหน่งที่เกินกว่าเขตข้อมูลผสานที่ระบุและเอาเขตข้อมูลผสาน ตัวอย่างรหัสต่อไปนี้แสดงวิธีการย้ายเคอร์เซอร์ไปยังตำแหน่งที่เกินกว่าเขตข้อมูลผสานที่.

วิธีการแปลงระหว่างหน่วยวัด

คุณสมบัติของวัตถุส่วนใหญ่ที่ให้ไว้ในAspose.WordsAPIที่แสดงถึงการวัด(ความกว้าง/ความสูงขอบและระยะทางต่างๆ)acceptค่าในจุด(1 นิ้วเท่ากับ 72 จุด) บางครั้งนี้ไม่สะดวกจึงมีชั้นเรียนConvertUtilที่ให้ฟังก์ชั่นผู้ช่วยในการแปลงระหว่างหน่วยวัดต่างๆ จะช่วยให้การแปลงนิ้วเป็นจุด,จุดนิ้วพิกเซลไปยังจุดและจุดที่จะพิกเซล เมื่อพิกเซลถูกแปลงเป็นจุดและในทางกลับกันก็สามารถทำได้ที่ความละเอียด 96 จุดต่อนิ้ว(จุด.

ConvertUtil

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการระบุคุณสมบัติของหน้าเป็นนิ้ว.