Phải có cách để nối vào Visio bằng COM và làm cho nó lưu dưới dạng hình ảnh.
Tại sao bạn không thử viết một thứ gì đó, sau đó, nếu bạn biết cách sử dụng công cụ COM? Sau khi tất cả, nếu bạn không thể tìm thấy bất cứ điều gì đã được thực hiện để làm điều đó, và bạn biết bạn có thể tìm ra cách để làm điều đó cho mình, tại sao không viết một cái gì đó để làm điều đó cho mình?
EDIT: Xây dựng một chút về những gì tôi đã nêu trong bình luận của mình: viết một kịch bản nào đó có vẻ là lựa chọn tốt nhất của bạn trong tình huống này, và ít nhất, Python sẽ khá hữu ích cho việc đó thư viện tìm thấy ở đây: http://starship.python.net/crew/theller/comtypes/ Tất nhiên, như tôi đã nói, nếu bạn thích sử dụng một ngôn ngữ kịch bản khác, thì bạn có thể thử sử dụng nó; vấn đề là, tôi đã thực sự sử dụng COM với VBA và Python tại thời điểm này (như một sang một bên, Microsoft có xu hướng đề cập đến "Tự động hóa" những ngày này chứ không phải là đặc biệt tham khảo COM, tôi tin.) Điều tốt đẹp về Python là đó là một ngôn ngữ diễn giải, và do đó bạn chỉ cần một phiên bản của thông dịch viên cho các hệ điều hành khác nhau mà bạn đang sử dụng, với các phiên bản cho Windows, OSX, Linux, Unix, vv Mặt khác, tôi nghi ngờ bạn có thể sử dụng COM trên không Các hệ thống -Windows không có một số loại hack, vì vậy bạn có thể phân tích dữ liệu trong các tệp nguồn trực tiếp (và mặc dù các định dạng mặc định của Visio xuất hiện để sử dụng một dạng XML nào đó, nó có thể là một trong những định dạng sở hữu độc quyền đó.).
Nếu bạn chưa sử dụng Python trước, các tài liệu Python có một hướng dẫn tốt để mọi người bắt đầu: http://docs.python.org/3.1/tutorial/index.html
Và, tất nhiên, bạn sẽ muốn trình thông dịch Python bản thân: http://python.org/download/releases/3.1/ (Lưu ý rằng bạn có thể phải tự thêm thư mục Python vào biến môi trường PATH sau khi cài đặt.)
Khi bạn viết tập lệnh, bạn có thể có cú pháp để chạy tập lệnh giống như "python visioexport.py <source/original file[ with path]>[ <new file[ with path]>]
" (giả sử tệp tập lệnh nằm trong Thư mục Python), với tập tin mới mặc định cho một tập tin cùng tên và trong cùng thư mục/thư mục với tên gốc nó với một phần mở rộng khác; trên thực tế, nếu bạn muốn, bạn có thể thiết lập để xuất sang nhiều định dạng, với định dạng mặc định là bất kỳ tiện ích mở rộng mặc định nào bạn chọn và được chỉ định bởi tiện ích mở rộng thay thế của bạn chỉ định một trong tên tệp.Đồng thời, bạn có thể thiết lập nó để nếu bạn chỉ có tên tệp mới sau tệp nguồn, không có đường dẫn nào được chỉ định, nó sẽ lưu với tên tệp mới đó vào thư mục của tệp nguồn. Và, tất nhiên, nếu bạn không chỉ định đường dẫn cho tệp nguồn, chỉ cần tên tệp, bạn có thể thiết lập để lấy tệp từ thư mục hiện tại).
Về chủ đề định dạng tệp: dường như tôi chuyển đổi sang SVG có thể là điều tốt nhất để làm, vì nó sẽ tiết kiệm không gian hơn và phản ánh tốt hơn trạng thái của hình ảnh gốc dưới dạng hình ảnh vectơ. Mặt khác, việc chuyển đổi từ định dạng Visio sang SVG không hoàn hảo (hoặc ít nhất, nó không có trong Visio 2003; tôi không thể tìm thấy nguồn thông tin tương tự như this one cho Visio 2007), và như đã thấy here, bạn có thể phải sửa đổi tệp XML kết quả (mặc dù điều đó có thể được thực hiện bằng cách sử dụng tập lệnh, sau khi tệp được xuất, qua các phần của thư viện chuẩn Python). Nếu bạn không nhớ kích thước tệp bổ sung của bitmap và bạn không muốn bao gồm mã bổ sung để sửa các tệp SVG kết quả, thì có thể bạn chỉ cần đi với định dạng bitmap chẳng hạn như PNG.
Tôi nhận được "Tên tệp này không hợp lệ.Lỗi "NUM: -2032466859 khi gọi:" Vis2Img.exe DAG.vsd DAG.gif "từ dòng lệnh. Thêm 0 hoặc 1 vào lệnh để chỉ định số trang không giúp được gì. Tôi sẽ xem xét kỹ hơn khi –
Vâng, bạn cần có đường dẫn đầy đủ theo cách này được thiết lập ... Bạn có thể tinh chỉnh nó khá dễ dàng để chỉ mặc định để app.path để tìm thư mục cho một tệp, nếu không có đường dẫn đầy đủ ... –
Vis2Img.exe "' cygpath -w -a DAG.vsd' "" 'cygpath -w -a DAG.gif'" để giải cứu trong cygwin bash :). Cảm ơn Jon –