แสดงซ่อนบุ๊กมาร์กในเอกสาร Word

ในบทความนี้ เราจะสำรวจซอร์สโค้ด C# ด้านบนเพื่อทำความเข้าใจวิธีใช้ฟังก์ชันแสดงซ่อนบุ๊กมาร์กในไลบรารี Aspose.Words สำหรับ .NET คุณลักษณะนี้ช่วยให้คุณสามารถแสดงหรือซ่อนบุ๊กมาร์กเฉพาะในเอกสาร Word

ข้อกำหนดเบื้องต้น

  • ความรู้พื้นฐานของภาษา C#
  • สภาพแวดล้อมการพัฒนา .NET ที่ติดตั้งไลบรารี Aspose.Words

ขั้นตอนที่ 1: กำลังโหลดเอกสาร

เราใช้Document คลาสเพื่อโหลดเอกสารที่มีอยู่จากไฟล์:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document(dataDir + "Bookmarks.docx");

ขั้นตอนที่ 2: แสดงหรือซ่อนบุ๊กมาร์กเฉพาะ

เราใช้ShowHideBookmarkedContentฟังก์ชั่นแสดงหรือซ่อนบุ๊กมาร์กเฉพาะในเอกสาร ฟังก์ชันนี้จะใช้เป็นพารามิเตอร์ของเอกสาร ชื่อของบุ๊กมาร์ก และบูลีนเพื่อระบุว่าจะแสดงหรือซ่อนบุ๊กมาร์ก:

ShowHideBookmarkedContent(doc, "MyBookmark1", false);

ขั้นตอนที่ 3: บันทึกเอกสารที่แก้ไข

เราใช้Save วิธีการบันทึกเอกสารที่แก้ไขลงในไฟล์:

doc.Save(dataDir + "WorkingWithBookmarks.ShowHideBookmarks.docx");

ตัวอย่างซอร์สโค้ดสำหรับแสดงซ่อนบุ๊กมาร์กโดยใช้ Aspose.Words สำหรับ .NET

นี่คือตัวอย่างซอร์สโค้ดแบบเต็มเพื่อสาธิตการแสดงหรือซ่อนบุ๊กมาร์กเฉพาะโดยใช้ Aspose.Words สำหรับ .NET:


	// เส้นทางไปยังไดเร็กทอรีเอกสาร
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document doc = new Document(dataDir + "Bookmarks.docx");

	ShowHideBookmarkedContent(doc, "MyBookmark1", false);
	
	doc.Save(dataDir + "WorkingWithBookmarks.ShowHideBookmarks.docx");

ซอร์สโค้ด ShowHideBookmarkedContent


public void ShowHideBookmarkedContent(Document doc, string bookmarkName, bool showHide)
        {
            Bookmark bm = doc.Range.Bookmarks[bookmarkName];

            DocumentBuilder builder = new DocumentBuilder(doc);
            builder.MoveToDocumentEnd();

            // {IF "{MERGEFIELD bookmark}" = "true" "" ""}
            Field field = builder.InsertField("IF \"", null);
            builder.MoveTo(field.Start.NextSibling);
            builder.InsertField("MERGEFIELD " + bookmarkName + "", null);
            builder.Write("\" = \"true\" ");
            builder.Write("\"");
            builder.Write("\"");
            builder.Write(" \"\"");

            Node currentNode = field.Start;
            bool flag = true;
            while (currentNode != null && flag)
            {
                if (currentNode.NodeType == NodeType.Run)
                    if (currentNode.ToString(SaveFormat.Text).Trim() == "\"")
                        flag = false;

                Node nextNode = currentNode.NextSibling;

                bm.BookmarkStart.ParentNode.InsertBefore(currentNode, bm.BookmarkStart);
                currentNode = nextNode;
            }

            Node endNode = bm.BookmarkEnd;
            flag = true;
            while (currentNode != null && flag)
            {
                if (currentNode.NodeType == NodeType.FieldEnd)
                    flag = false;

                Node nextNode = currentNode.NextSibling;

                bm.BookmarkEnd.ParentNode.InsertAfter(currentNode, endNode);
                endNode = currentNode;
                currentNode = nextNode;
            }

            doc.MailMerge.Execute(new[] { bookmarkName }, new object[] { showHide });
        }
		

บทสรุป

ในบทความนี้ เราได้สำรวจซอร์สโค้ด C# เพื่อทำความเข้าใจวิธีใช้ฟีเจอร์แสดงซ่อนบุ๊กมาร์กของ Aspose.Words สำหรับ .NET เราทำตามคำแนะนำทีละขั้นตอนเพื่อแสดงหรือซ่อนบุ๊กมาร์กเฉพาะในเอกสาร

คำถามที่พบบ่อยสำหรับการแสดงซ่อนบุ๊กมาร์กในเอกสาร word

ถาม: ฉันสามารถแสดงหรือซ่อนบุ๊กมาร์กหลายรายการในเอกสารเดียวกันได้หรือไม่

ตอบ: ได้ คุณสามารถแสดงหรือซ่อนบุ๊กมาร์กหลายรายการในเอกสารเดียวกันได้โดยทำซ้ำขั้นตอนที่ 2 และ 3 สำหรับแต่ละบุ๊กมาร์กที่คุณต้องการดำเนินการ

ถาม: โค้ดที่ให้มาทำงานร่วมกับรูปแบบเอกสาร Word อื่นๆ เช่น .doc หรือ .docm ได้หรือไม่

ตอบ: ใช่ โค้ดที่ให้มาใช้งานได้กับเอกสาร Word รูปแบบต่างๆ ที่ Aspose.Words รองรับ เช่น .doc และ .docm เพียงให้แน่ใจว่าใช้ชื่อไฟล์และเส้นทางที่ถูกต้องเมื่อโหลดและบันทึกเอกสาร

ถาม: ฉันจะแสดงบุ๊กมาร์กที่ซ่อนอยู่อีกครั้งได้อย่างไร

ตอบ: หากต้องการแสดงบุ๊กมาร์กที่ซ่อนอยู่อีกครั้ง คุณต้องใช้อันเดิมShowHideBookmarkedContent ฟังก์ชันส่งผ่านค่าtrue สำหรับพารามิเตอร์บูลีนที่ระบุว่าจะแสดงหรือซ่อนบุ๊กมาร์ก

ถาม: ฉันสามารถใช้เงื่อนไขเพื่อแสดงหรือซ่อนบุ๊กมาร์กตามค่าฟิลด์ผสานในเอกสารได้หรือไม่

ตอบ: ได้ คุณสามารถใช้เงื่อนไขและผสานค่าฟิลด์เพื่อกำหนดว่าควรแสดงหรือซ่อนบุ๊กมาร์กหรือไม่ คุณสามารถปรับแต่งโค้ดของShowHideBookmarkedContent ทำหน้าที่คำนึงถึงเงื่อนไขและค่าที่เหมาะสม

ถาม: ฉันจะลบบุ๊กมาร์กในเอกสาร Word โดยใช้ Aspose.Words for .NET ได้อย่างไร

ตอบ: หากต้องการลบบุ๊กมาร์กในเอกสาร Word โดยใช้ Aspose.Words สำหรับ .NET คุณสามารถใช้ไฟล์RemoveBookmarks วิธีการของDocument ระดับ. นี่คือโค้ดตัวอย่าง:

doc.RemoveBookmarks("BookmarkName");