Tìm thay thế Visio Java

Tệp Visio có thể bao gồm hình dạng, trình kết nối, hình ảnh hoặc văn bản để mô tả các sơ đồ khác nhau được sử dụng để tạo sơ đồ như sơ đồ tổ chức, sơ đồ luồng, v.v. Trong một số trường hợp nhất định, bạn có thể muốn tìm và thay thế một số văn bản ở định dạng VSD hoặc VSDX Sơ đồ Visio. Theo đó, bài viết này giải thích cách tìm và thay thế văn bản trong bản vẽ Visio theo lập trình bằng Java.

Tìm kiếm và Thay thế Văn bản trong Sơ đồ Visio - Cài đặt Java API

API Aspose.Diagram for Java hỗ trợ làm việc với các định dạng tệp Visio khác nhau bao gồm VSD, VSDX, VSDM, VSSX, v.v. Bạn có thể tải xuống tệp JAR từ phần Tải xuống hoặc sử dụng phần sau cấu hình trong tệp pom.xml của dự án của bạn để truy cập API từ Kho lưu trữ Aspose:

Kho:

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

Sự phụ thuộc:

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

Tìm và Thay thế Văn bản trong Sơ đồ Visio Lập trình trong Java

Bạn có thể tìm và thay thế văn bản trong tệp Visio định dạng VSD VSDX bằng các bước dưới đây:

  1. Tạo một tập hợp các chuỗi để tìm kiếm và thay thế văn bản.
  2. Tải tệp sơ đồ Visio nguồn và lặp qua văn bản trong mỗi hình dạng.
  3. Ghi tệp sơ đồ Visio đầu ra.

Mẫu mã dưới đây cho biết cách tìm và thay thế văn bản trong tệp Visio theo lập trình bằng Java:

// Tải sơ đồ đầu vào
Diagram diagram = new Diagram("FindReplaceText.vsdx");

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

// Chuẩn bị một bộ sưu tập văn bản cũ và mới
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()));

// Lặp lại các hình dạng của một trang
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))
            {
                // Tìm và thay thế văn bản của một hình dạng
                tx.setText(tx.getText().replace(key, replacements.get(key)));
            }
        }
    }
}

// Lưu sơ đồ
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);

Sự kết luận

Kết luận, bạn đã hiểu cách tìm và thay thế văn bản trong sơ đồ Visio. Bạn cũng có thể ứng biến đoạn mã để làm việc với các trường hợp quá tải khác của phương thức thay thế. Ví dụ: thay thế tất cả các trường hợp của văn bản phù hợp hoặc chỉ lần xuất hiện đầu tiên của cụm từ tìm kiếm trong tệp Visio. Bạn có thể truy cập không gian tài liệu để tìm hiểu một số tính năng khác để thao tác hoặc chuyển đổi tệp MS Visio. Trong trường hợp bạn cần thảo luận về bất kỳ mối quan tâm hoặc yêu cầu nào của mình, vui lòng liên hệ với chúng tôi tại diễn đàn.

Xem thêm

Chuyển đổi Visio VSD hoặc VSDX File sang XAML trong Java