ค้นหาแทนที่ Visio Java

ไฟล์ Visio สามารถมีรูปร่าง ตัวเชื่อมต่อ รูปภาพ หรือข้อความเพื่ออธิบายไดอะแกรมต่างๆ ซึ่งใช้สร้างไดอะแกรม เช่น แผนผังองค์กร แผนผังลำดับงาน ฯลฯ ในบางสถานการณ์ คุณอาจต้องการค้นหาและแทนที่ข้อความบางส่วนในรูปแบบ VSD หรือ VSDX ไดอะแกรม Visio ดังนั้น บทความนี้จะอธิบายวิธีการค้นหาและแทนที่ข้อความในรูปวาด Visio โดยทางโปรแกรมใน Java

ค้นหาและแทนที่ข้อความใน Visio Diagram – การติดตั้ง Java API

Aspose.Diagram for Java API รองรับการทำงานกับรูปแบบไฟล์ Visio ต่างๆ รวมถึง VSD, VSDX, VSDM, VSSX และอื่นๆ คุณสามารถดาวน์โหลดไฟล์ JAR ได้จากส่วน ดาวน์โหลด หรือใช้ส่วนต่อไปนี้ การกำหนดค่าในไฟล์ pom.xml ของโครงการของคุณเพื่อเข้าถึง API จาก Aspose Repository:

พื้นที่เก็บข้อมูล:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

การพึ่งพา:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.4</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

ค้นหาและแทนที่ข้อความในไดอะแกรม Visio โดยทางโปรแกรมใน Java

คุณสามารถค้นหาและแทนที่ข้อความในไฟล์ Visio รูปแบบ VSD VSDX ด้วยขั้นตอนด้านล่าง:

  1. สร้างคอลเลกชันของสตริงเพื่อค้นหาและแทนที่ข้อความ
  2. โหลดไฟล์ไดอะแกรม Visio ต้นทางและวนซ้ำข้อความในแต่ละรูปร่าง
  3. เขียนไฟล์ไดอะแกรม Visio เอาต์พุต

ตัวอย่างโค้ดด้านล่างแสดงวิธีค้นหาและแทนที่ข้อความในไฟล์ Visio โดยทางโปรแกรมโดยใช้ Java:

// โหลดไดอะแกรมอินพุต
Diagram diagram = new Diagram("FindReplaceText.vsdx");

DateFormat dateFormat = new SimpleDateFormat("dd/MMMM/yyyy");
Date myDate = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();

// เตรียมคอลเลกชันข้อความเก่าและใหม่
Hashtable<String, String> replacements = new Hashtable<String, String>();
replacements.put("[[CompanyName]]", "Research Society of XYZ");
replacements.put("[[CompanyName]]", "Research Society of XYZ");
replacements.put("[[EmplyeeName]]", "James Bond");
replacements.put("[[SubjectTitle]]", "The affect of the internet on social behavior in the industrialize world");

cal.setTime(myDate);
cal.add(Calendar.YEAR, -1);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[TimePeriod]]", dateFormat.format(cal.getTime()) + " -- " + dateFormat.format(myDate));

cal.setTime(myDate);
cal.add(Calendar.DAY_OF_MONTH, -7);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[SubmissionDate]]", dateFormat.format(cal.getTime()));
replacements.put("[[AmountReq]]", "$100,000");

cal.setTime(myDate);
cal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[DateApproved]]", dateFormat.format(cal.getTime()));

// ทำซ้ำตามรูปร่างของหน้า
for (Shape shape : (Iterable<Shape>) diagram.getPages().getPage("Page-1").getShapes())
{
    Set<String> keys = replacements.keySet();
    for(String key: keys)
    {
       for (FormatTxt txt : (Iterable<FormatTxt>) shape.getText().getValue())
        {
       	    Txt tx = (Txt)((txt instanceof Txt) ? txt : null);
            if (tx != null && tx.getText().contains(key))
            {
                // ค้นหาและแทนที่ข้อความของรูปร่าง
                tx.setText(tx.getText().replace(key, replacements.get(key)));
            }
        }
    }
}

// บันทึกไดอะแกรม
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);

บทสรุป

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

ดูสิ่งนี้ด้วย

แปลงไฟล์ Visio VSD หรือ VSDX เป็น XAML ใน Java