如何使用 GroupDocs Viewer 將 CAD 圖紙切割成圖塊

如果你想了解如何切割 CAD檔案成較小、更易管理的片段,你來對地方了。在本教學中,我們將逐步說明如何使用 GroupDocs Viewer for Java 將大型 CAD 圖紙切割成圖塊。完成後,你將擁有一個即用的解決方案,可提升渲染速度、降低記憶體使用,並讓在網頁或行動應用程式中顯示圖紙變得更簡單。

Split CAD Drawings with GroupDocs.Viewer for Java

快速解答

  • “splitting CAD” 能帶來什麼效果? 它將巨大的圖紙分割成較小的影像(圖塊),使載入更快且佔用較少記憶體。
  • 圖塊使用哪種格式? 預設產生 PNG 檔案,但透過 Viewer 選項也支援其他格式。
  • 我需要授權嗎? 開發階段可使用免費試用版;正式上線則需付費授權。
  • 我可以調整圖塊大小嗎? 可以——調整 tileWidthtileHeight 的計算方式即可符合需求。
  • 此方法是執行緒安全的嗎? 在每個 Viewer 實例中使用 try‑with‑resources 逐一渲染圖塊,對於併發執行是安全的。

什麼是「如何切割 CAD」?

切割 CAD 是指將單一且通常非常龐大的 CAD 圖紙分割成多個矩形區塊(圖塊)。每個圖塊會獨立渲染,讓你僅載入使用者實際需要的部分——非常適合網頁地圖、文件入口網站以及行動檢視器。

為什麼使用 GroupDocs Viewer for Java?

GroupDocs Viewer 內建支援超過 100 種檔案格式,包括 DWG、DXF 與 DWF。其圖塊 API 允許你指定精確座標,僅渲染你關注的區域,而不必先處理整個檔案。這可節省 CPU 時間、降低頻寬需求,並提供更流暢的使用者體驗。

前置條件

  • 函式庫: GroupDocs.Viewer for Java ≥ 25.2。
  • JDK: 任意近期的 Java Development Kit (Java 8+)。
  • IDE: IntelliJ IDEA、Eclipse,或其他相容 Java 的 IDE。
  • 建置工具: Maven(其他建置工具亦可,只要加入相依性即可)。

設定 GroupDocs.Viewer for Java

將 GroupDocs 套件庫與相依性加入你的 pom.xml

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

取得授權

GroupDocs.Viewer 提供免費試用授權供評估使用:

基本初始化

建立簡易的 Viewer 實例,以驗證程式庫正確載入:

import com.groupdocs.viewer.Viewer;

public class ViewerSetup {
    public static void main(String[] args) {
        try (Viewer viewer = new Viewer("path/to/your/drawing.dwg")) {
            // Your rendering code goes here.
        }
    }
}

分步指南:將 CAD 圖紙切割成圖塊

步驟 1:定義輸出目錄

我們會將每個圖塊儲存為單獨的 PNG 檔案。使用工具方法可讓路徑邏輯保持簡潔且可重複使用。

import java.nio.file.Path;

Path outputDirectory = Utils.getOutputDirectoryPath("SplitDrawingIntoTiles");
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.png");

步驟 2:設定檢視選項

將渲染格式設定為 PNG,並告訴檢視器不要預先載入所有頁面(可節省記憶體)。

import com.groupdocs.viewer.options.PngViewOptions;
import com.groupdocs.viewer.options.ViewInfoOptions;

PngViewOptions viewOptions = new PngViewOptions(pageFilePathFormat);
ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(false);

步驟 3:計算圖塊尺寸

首先取得圖紙的原始寬度與高度,然後將其分割成四個等大的象限。

import com.groupdocs.viewer.results.ViewInfo;
import com.groupdocs.viewer.options.Tile;

ViewInfo viewInfo = new Viewer("path/to/your/drawing.dwg").getViewer().getViewInfo(viewInfoOptions);
int width = viewInfo.getPages().get(0).getWidth();
int height = viewInfo.getPages().get(0).getHeight();

// Each tile is a quarter of the total size.
int tileWidth = width / 2;
int tileHeight = height / 2;

Tile[] tiles = {
    new Tile(0, 0, tileWidth, tileHeight),
    new Tile(tileWidth, 0, tileWidth, tileHeight),
    new Tile(0, tileHeight, tileWidth, tileHeight),
    new Tile(tileWidth, tileHeight, tileWidth, tileHeight)
};

步驟 4:渲染並儲存圖塊

將計算出的圖塊加入渲染選項,讓 Viewer 產生 PNG 檔案。

viewOptions.getCadOptions().getTiles().addAll(java.util.Arrays.asList(tiles));

try (Viewer viewer = new Viewer("path/to/your/drawing.dwg")) {
    viewer.view(viewOptions);
}

疑難排解提示

  • Build path – 確認 GroupDocs JAR 檔案已在 classpath 中。
  • Permissions – 輸出資料夾必須允許 Java 程序寫入。
  • Exceptions – 若出現 ViewerException,請再次確認 DWG 檔案未損毀且已套用正確的授權。

常見 CAD 圖塊切割的使用情境

  1. Web Mapping – 只載入使用者平移/縮放時可見的樓層平面圖部分。
  2. Document Management – 將每個圖塊分別儲存,以加快預覽產生速度。
  3. Mobile Viewing – 只下載當前螢幕所需的圖塊,以降低頻寬使用。

效能考量

  • Tile Size – 較大的圖塊檔案較少,但渲染較慢;請根據 UI 需求取得平衡。
  • Memory Monitoring – 使用 Java 的效能分析工具(例如 VisualVM)監控處理超大型圖紙時的堆積使用情況。
  • Resource Cleanup – 如上所示的 try‑with‑resources 模式會自動釋放原生資源。

常見問題

Q: 我可以使用相同方法將其他檔案類型(PDF、圖像)切割成圖塊嗎?
A: 可以。GroupDocs Viewer 支援多種格式,只需使用相對應的選項類別(例如 PdfViewOptions)。

Q: 我該如何調整輸出影像品質?
A: 調整 viewOptions.setResolution(int dpi),或在 PngOptions 物件上設定壓縮參數。

Q: 我的應用程式在處理非常大的 DWG 檔案時記憶體不足,我該怎麼辦?
A: 縮小圖塊尺寸、增加 JVM 堆積大小(-Xmx),或在不同的 Viewer 實例中依序渲染圖塊。

Q: 可以非同步渲染圖塊嗎?
A: 完全可以。將每個圖塊的渲染呼叫包在 CompletableFuture 中,或使用執行緒池服務將工作負載平行化。

Q: 每個圖塊都需要單獨的授權嗎?
A: 不需要。一個有效的 GroupDocs Viewer 授權即可涵蓋應用程式內所有渲染操作。

資源


最後更新: 2026-04-01
測試環境: GroupDocs.Viewer 25.2 for Java
作者: GroupDocs