開始使用
Laravel DWG Converter 讓 Laravel 應用擷取 DWG 內嵌縮圖,或將檔案輸出為 DXF、結構 JSON、PNG、 JPEG 或 WebP。你只需安裝實際會呼叫之操作所需的外部命令。
系統需求
| 需求 | 支援範圍 |
|---|---|
| PHP | 8.2 或更新版本 |
| Laravel | 12 或 13 |
| CI 實測 | PHP 8.2 搭配 Laravel 12;PHP 8.3–8.5 搭配 Laravel 12–13,包含 PHP 8.2/Laravel 12 的最低與目前相容相依版本 |
Laravel 13 需要 PHP 8.3 或更新版本。
每個操作有不同的外部需求:
| 操作 | 必要命令 |
|---|---|
| 內嵌縮圖 | dwgbmp |
| DXF | dwg2dxf |
| 結構 JSON | 支援 JSON 輸出的 dwgread |
| PNG、JPEG 或 WebP 預覽 | dwg2dxf、LibreOffice 7.4+ soffice、ImageMagick 7 magick |
安裝前請閱讀外部工具。縮圖、DXF 與 JSON 操作不需要 LibreOffice 或 ImageMagick。
安裝
透過 Composer 安裝套件:
bash
composer require mattmy/laravel-dwg-converter接著安裝所選操作需要的命令。LibreDWG 安裝方式請參考 LibreDWG 官方儲存庫。本套件不會下載或附帶任何外部工具。
設定
命令位於 PATH 時可以直接使用預設設定。若工具安裝在其他位置,請在 .env 填入絕對路徑:
dotenv
LIBREDWG_DWGBMP=/opt/libredwg/bin/dwgbmp
LIBREDWG_DWG2DXF=/opt/libredwg/bin/dwg2dxf
LIBREDWG_DWGREAD=/opt/libredwg/bin/dwgread
DWG_CONVERTER_LIBREOFFICE=/usr/bin/soffice
DWG_CONVERTER_IMAGEMAGICK=/usr/local/bin/magick已位於 PATH 的命令不必設定變數。逾時、檔案大小上限與暫存空間請參考設定參考。
快速開始
下方範例接收有效的 Laravel 上傳檔案、擷取內嵌預覽,再串流至預設 Storage 磁碟:
php
use Mattmy\DwgConverter\Facades\Dwg;
$thumbnail = Dwg::thumbnail($request->file('drawing'))->extract();
$path = $thumbnail->storeAs(
path: 'drawing-thumbnails',
name: 'floor-plan.'.$thumbnail->extension(),
);副檔名依預覽內容判定,可能是 bmp、png 或 wmf。有效 DWG 也可能沒有內嵌預覽;若這是 預期情況,請處理 DwgOperationFailed。