เครื่องมือบรรทัดคำสั่ง
larrygram-cli อ่านไฟล์ภาพวาด Visio แล้วพิมพ์สรุปข้อมูล เรนเดอร์หน้า หรือส่งออกทุกหน้าเป็น PNG หรือ SVG เครื่องมือนี้ทำงานผ่านทะเบียนคำสั่ง (command registry) เดียวกับแอป (file.inspect, file.render, file.export) สคริปต์จึงได้พฤติกรรมแบบเดียวกับที่คนใช้งานในแอป
มีเพียงเอาต์พุตของ inspect และ --help เท่านั้นที่ออกทางเอาต์พุตมาตรฐาน (standard output) ข้อผิดพลาดและคำเตือนจะออกทาง standard error บรรทัดละหนึ่งรายการ
การใช้งาน
หัวข้อที่มีชื่อว่า “การใช้งาน”larrygram-cli - inspect, render and export Visio drawings
Usage: larrygram-cli inspect <file> [--json] [--page N] larrygram-cli render <file> --out <path> [--page N] [--format png|svg] [--scale PPI] [--background #RRGGBB|none] [--strict] larrygram-cli export <file> --out <dir> [--format png|svg] [--scale PPI] [--strict] larrygram-cli --helpบิลด์จากรีโพซิทอรีด้วยคำสั่ง:
cargo build --release -p larrygram-cli./target/release/larrygram-cli --helpinspect
หัวข้อที่มีชื่อว่า “inspect”สรุปข้อมูลของเอกสาร ได้แก่ ประเภท หน้า มาสเตอร์ สไตล์ และธีม
| แฟล็ก | ความหมาย | ค่าเริ่มต้น |
|---|---|---|
--json |
พิมพ์สรุปเป็นออบเจกต์ JSON หนึ่งออบเจกต์ | ข้อความ |
--page N |
สรุปเฉพาะหนึ่งหน้า นับจาก 1 | ทุกหน้า |
larrygram-cli inspect flowchart.vsdxkind: drawingpages: 2 1: Page-1 8.5 x 11 in, 3 shapes, 0 warnings 2: (unnamed) 11 x 8.5 in, 0 shapes, 2 warningsmasters: 1styles: 4themes: 1warnings: 2เมื่อใช้ --json คีย์ต่าง ๆ จะคงที่ไม่เปลี่ยนแปลง:
{ "kind": "drawing", "masters": 1, "pages": [ { "height": 11.0, "index": 1, "name": "Page-1", "shapes": 3, "warnings": 0, "width": 8.5 }, { "height": 8.5, "index": 2, "name": "", "shapes": 0, "warnings": 2, "width": 11.0 } ], "styles": 4, "themes": 1, "warnings": 2}kind มีค่าเป็น drawing, stencil หรือ template ขนาดหน้ามีหน่วยเป็นนิ้ว ขนาดที่คำนวณไม่ได้จะเป็น 0
เรนเดอร์หนึ่งหน้าเป็นไฟล์ PNG หรือ SVG
| แฟล็ก | ความหมาย | ค่าเริ่มต้น |
|---|---|---|
--out PATH |
ไฟล์เอาต์พุต (จำเป็น) | — |
--page N |
หน้าที่จะเรนเดอร์ นับจาก 1 | หน้าแรก |
--format png|svg |
รูปแบบเอาต์พุต | ตามนามสกุลของ --out |
--scale PPI |
สเกลของอุปกรณ์เป็นพิกเซลต่อนิ้ว ต้องเป็นจำนวนบวก | 96 |
--background C |
#RRGGBB สำหรับสีทึบ หรือ none สำหรับพื้นหลังโปร่งใส |
พื้นหลังของหน้านั้นเอง |
--strict |
ออกด้วยรหัส 4 เมื่อมีคำเตือน (ไฟล์ยังคงถูกเขียน) | ปิด |
larrygram-cli render flowchart.vsdx --out page-1.png --scale 192larrygram-cli render flowchart.vsdx --out page-2.svg --page 2 --background noneเรนเดอร์ทุกหน้าของเอกสารลงในไดเรกทอรี ไฟล์จะมีชื่อเป็น page-1.png, page-2.png ไปเรื่อย ๆ
| แฟล็ก | ความหมาย | ค่าเริ่มต้น |
|---|---|---|
--out DIR |
ไดเรกทอรีเอาต์พุต (จำเป็น) | — |
--format png|svg |
รูปแบบเอาต์พุต | png |
--scale PPI |
สเกลของอุปกรณ์เป็นพิกเซลต่อนิ้ว | 96 |
--strict |
ออกด้วยรหัส 4 เมื่อมีคำเตือน | ปิด |
larrygram-cli export flowchart.vsdx --out pages/ --format svgรหัสออก
หัวข้อที่มีชื่อว่า “รหัสออก”| รหัส | ความหมาย |
|---|---|
0 |
สำเร็จ |
1 |
ข้อผิดพลาดในการใช้งาน (อาร์กิวเมนต์ไม่ถูกต้อง) |
2 |
ข้อผิดพลาดของอินพุต: ไม่พบไฟล์ อ่านไฟล์ไม่ได้ หรือแยกวิเคราะห์ไฟล์ไม่ได้ |
3 |
ข้อผิดพลาดในการเรนเดอร์หรือการเขียนเอาต์พุต |
4 |
มีคำเตือนเกิดขึ้นและตั้งค่า --strict ไว้ |
ทำให้งาน (job) ล้มเหลวเมื่อไฟล์ภาพวาดเรนเดอร์แล้วมีคำเตือน:
for f in diagrams/*.vsdx; do larrygram-cli export "$f" --out "build/${f%.vsdx}" --format svg --strict || exit 1doneหน้านี้แปลจากภาษาอังกฤษ หากพบส่วนที่อ่านแล้วไม่ถูกต้อง แจ้งให้เราทราบ