在某些情況下,您可能需要從 Visio 圖表中讀取形狀數據。這通常在圖表包含元數據時非常有幫助。您可以在不使用 Microsoft Visio 或 Office Interop 的情況下在 Java 中提取這些信息。這對於報告、數據檢查或自動化工具來說是理想的。在這篇文章中,我們將以清晰簡單的方式向您展示如何使用 Java 閱讀形狀數據。
Java Visio Library to Read Shape Data
在這篇文章中,我們將使用 Aspose.Diagram for Java 從 Visio 檔案中讀取形狀數據。該 API 提供對形狀、頁面和自定義屬性的完全訪問。它支持 VSDX、VSD 和其他格式。
您可以在任何 Java 專案中使用此庫。它易於設置並支持大型圖表和批量處理。如果您的應用程式需要處理 Visio 文件,這個 SDK 是一個很好的工具。
請從 releases 下載庫並將 JAR 添加到您的項目中,或通過 Maven 安裝:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-diagram</artifactId>
<version>25.7</version>
</dependency>
如何在 Java 中讀取 Visio 形狀數據
按照這些步驟從 Visio 文件中讀取形狀數據:
- 使用
Diagram
類別載入檔案。 - 獲取圖示中的一頁。
- 在頁面上循環遍歷形狀。
- 打印形狀 ID 和名稱。
這是一段 Java 代碼片段,演示如何在 Java 中讀取 Visio 形狀數據:
// 加載 Visio 檔案
Diagram diagram = new Diagram("Drawing1.vsdx");
// get pages count
System.out.println("Total Pages:" + diagram.getPages().getCount());
// 訪問首頁
Page page = diagram.getPages().get(0);
// 遍歷形狀
for (Shape shape : (Iterable<Shape>) page.getShapes()) {
System.out.println("Shape ID: " + shape.getID());
System.out.println("Name: " + shape.getName());
}
Total Pages: 1
Shape ID: 1
Name: Square
Shape ID: 2
Name: Rectangle
Shape ID: 3
Name: Dynamic connector
按名稱讀取形狀屬性
您可以通過形狀的名稱來讀取其屬性。只需遵循以下步驟:
- Load the diagram file.
- Access a page.
- 找到形狀的名稱。
- 使用
Props
來讀取屬性。
這裡是示範如何通過形狀名稱來讀取其屬性的 Java 代碼範例:
// 載入 Visio 檔案
Diagram diagram = new Diagram("Drawing1.vsdx");
// 訪問首頁
Page page = diagram.getPages().get(0);
// 遍歷形狀
for (Shape shape : (Iterable<Shape>) page.getShapes()) {
// 閱讀形狀屬性名稱
if ("Process".equals(shape.getName())) {
for (Prop prop : (Iterable<Prop>) shape.getProps()) {
System.out.println("Property Name: " + prop.getLabel().getValue());
System.out.println("Value: " + prop.getValue().getVal());
}
}
}
閱讀 Java 中 Shape 的 InheritProps
您也可以通過以下步驟獲取繼承的形狀屬性:
- 打開 Visio 檔案。
- 獲取一個頁面並遍歷形狀。
- 使用
InheritProps
來讀取繼承的值。
以下範例 Java 代碼顯示如何在 Java 中讀取 Visio 形狀的 InheritProps:
// 加載 Visio 文件
Diagram diagram = new Diagram("Drawing1.vsdx");
// 訪問首頁
Page page = diagram.getPages().get(0);
// 遍歷形狀 InheritProps
for (Shape shape : (Iterable<Shape>) page.getShapes()) {
for (Prop prop : (Iterable<Prop>) shape.getInheritProps()) {
System.out.println("Inherited Name: " + prop.getLabel().getValue());
System.out.println("Value: " + prop.getValue().getVal());
}
}
取得免費許可證
你想無限制地嘗試 Aspose.Diagram 嗎?你可以 獲取免費的臨時許可證 並測試該庫的所有功能。
打開和閱讀 Visio 形狀:免費資源
探索這些免費資源以獲得更多信息:
結論
在這篇文章中,你學會了如何使用 Aspose.Diagram 在 Java 中讀取 Visio 形狀數據。你看到如何加載文件、提取形狀屬性以及讀取繼承的數據。使用這個強大的 API,你可以輕鬆構建處理 Visio 文件的 Java 應用程序。
如果您需要幫助,請隨時通過我們的 免費支持論壇 聯繫我們。