تبدیل نمودارهای پیچیده Visio به گرافیک‌های سبک SVG یک نیاز مکرر برای برنامه‌های مدرن Java است که نمودارها را در وب رندر می‌کنند. Conholdate.Total for Java یک SDK قدرتمند ارائه می‌دهد که تبدیل Visio به SVG را در Java ساده می‌کند. در این راهنما، یک مثال کامل کد را مشاهده خواهید کرد، یاد می‌گیرید چگونه گزینه‌های تبدیل را پیکربندی کنید، کتابخانه را با Maven تنظیم کنید و به‌صورت کارآمد فایل‌های Visio چندصفحه‌ای را مدیریت کنید. در پایان، آماده خواهید شد تا تبدیل Visio به SVG را در پروژه‌های خود ادغام کنید.

مثال کامل کد: تبدیل Visio به SVG در Java

این مثال نشان می‌دهد که چگونه می‌توان یک فایل Visio را به SVG تبدیل کرد با استفاده از Conholdate.Total for Java.

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.SvgConvertOptions;
import java.io.File;

public class VisioToSvgConverter {
    public static void main(String[] args) {
        // Input Visio file (VSD, VSDX, VDX, VSS, VSSX, VST, VSTX)
        String inputVisioPath = "sample.vsdx";

// Directory where SVG files will be saved
        String outputDirectoryPath = "output_svg";

// Ensure output directory exists
        File outputDir = new File(outputDirectoryPath);
        if (!outputDir.exists()) {
            boolean created = outputDir.mkdirs();
            if (!created) {
                System.err.println("Failed to create output directory: " + outputDirectoryPath);
                return;
            }
        }

// Perform conversion
        try (Converter converter = new Converter(inputVisioPath)) {
            // Configure SVG conversion options
            SvgConvertOptions svgOptions = new SvgConvertOptions();
            svgOptions.setScale(1.0);               // 100% scale
            svgOptions.setEmbedImages(true);        // Embed images directly into SVG
            svgOptions.setPageSize(SvgConvertOptions.PageSize.A4); // Example page size
            svgOptions.setQuality(100);             // Maximum quality

// Get total number of pages (each page will become a separate SVG file)
            int pageCount = converter.getPageCount();

// Convert each page individually – useful for large Visio files
            for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
                svgOptions.setPageNumber(pageIndex + 1); // Pages are 1‑based
                String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";

// Convert current page to SVG
                converter.convert(outputSvgPath, svgOptions);
                System.out.println("Converted page " + (pageIndex + 1) + " to " + outputSvgPath);
            }
        } catch (Exception ex) {
            System.err.println("Error during Visio to SVG conversion: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را به‌گونه‌ای به‌روزرسانی کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.

نحوه تبدیل Visio به SVG در جاوا

فرآیند تبدیل می‌تواند به چند گام واضح تقسیم شود:

  1. راه‌اندازی مبدل - کلاس Converter با مسیر فایل Visio منبع نمونه‌سازی می‌شود.
try (Converter converter = new Converter(inputVisioPath)) {

این کلاس بخشی از Conholdate.Total SDK است و بارگذاری فایل‌های VSD، VSDX، VDX، VSS، VSSX، VST و VSTX را مدیریت می‌کند. برای جزئیات به مرجع API مراجعه کنید.

  1. پیکربندی گزینه‌های SVG - یک نمونه از SvgConvertOptions به شما امکان تنظیم مقیاس، تعبیه تصویر، اندازه صفحه و کیفیت را می‌دهد.
SvgConvertOptions svgOptions = new SvgConvertOptions();
svgOptions.setScale(1.0);
svgOptions.setEmbedImages(true);
svgOptions.setPageSize(SvgConvertOptions.PageSize.A4);
svgOptions.setQuality(100);

این تنظیمات ظاهر و وضوح فایل‌های SVG تولید شده را کنترل می‌کنند.

  1. تعیین تعداد صفحات - converter.getPageCount() تعداد صفحات موجود در سند Visio را برمی‌گرداند و به شما امکان می‌دهد هر صفحه را به‌صورت جداگانه پردازش کنید.
int pageCount = converter.getPageCount();
  1. مرور صفحات - برای هر صفحه، متد setPageNumber صفحهٔ جاری را انتخاب می‌کند و converter.convert خروجی SVG را در مسیر هدف می‌نویسد.
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
    svgOptions.setPageNumber(pageIndex + 1);
    String outputSvgPath = outputDirectoryPath + File.separator + "page_" + (pageIndex + 1) + ".svg";
    converter.convert(outputSvgPath, svgOptions);
}

این رویکرد برای فایل‌های بزرگ Visio به‌صورت حافظه‑کارآمد است، زیرا هر صفحه به‌صورت جداگانه پردازش می‌شود.

  1. Handle Exceptions - هر خطایی که در حین تبدیل رخ می‌دهد، گرفته شده و چاپ می‌شود، که به شما در رفع مشکلاتی مانند اشکال‌های پشتیبانی‌نشده کمک می‌کند.

با دنبال کردن این مراحل، SDK هر صفحه Visio را به یک فایل SVG جداگانه و با کیفیت بالا تبدیل می‌کند که برای نمایش وب یا پردازش‌های بعدی آماده است.

Visio به SVG گردش کار - پیش‌نیازها و تنظیمات

قبل از اینکه بتوانید کد را اجرا کنید، Conholdate.Total SDK را در پروژه Maven خود تنظیم کنید.

  1. اضافه کردن مخزن Maven Conholdate به pom.xml خود:
<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>
  1. افزودن وابستگی SDK:
<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>
  1. دانلود آخرین باینری‌های SDK اگر نصب دستی را ترجیح می‌دهید. فایل‌ها از صفحه دانلود در دسترس هستند.

  2. نسخه Java - SDK نیاز به Java 8 یا بالاتر دارد. اطمینان حاصل کنید که سازگاری source و target پروژه شما به‌طور مناسب تنظیم شده است.

  3. مجوز - برای استفاده در تولید، یک لایسنس معتبر را همان‌طور که در صفحه لایسنس موقت توضیح داده شده است، اعمال کنید. SDK بدون لایسنس در حالت ارزیابی اجرا می‌شود، اما با عملکرد محدود.

پس از رفع وابستگی‌ها، می‌توانید کلاس VisioToSvgConverter را مستقیماً از IDE خود یا از طریق خط فرمان کامپایل و اجرا کنید.

نتیجه‌گیری

تبدیل Visio به SVG در Java ساده می‌شود وقتی از قدرت Conholdate.Total for Java استفاده کنید. SDK تمام فرمت‌های پشتیبانی‌شده Visio را مدیریت می‌کند، کنترل دقیق بر خروجی SVG فراهم می‌آورد و به‌صورت مقیاس‌پذیر برای اسناد چندصفحه عمل می‌کند. با دنبال کردن راهنمای گام‌به‌گام، می‌توانید این قابلیت را در هر جریان کاری مبتنی بر Java یکپارچه کنید، چه در حال ساخت سرویس وب، مشاهده‌گر دسکتاپ یا خط لوله گزارش‌گیری خودکار باشید. به‌خاطر داشته باشید برای استقرارهای تولیدی یک لایسنس مناسب دریافت کنید؛ می‌توانید گزینه‌های قیمت‌گذاری را در صفحه قیمت‌گذاری بررسی کنید و لایسنس موقت را از صفحه لایسنس موقت درخواست کنید. برنامه‌نویسی خوش!

سوالاتی که ممکن است داشته باشید

  • چگونه می‌توانم تبدیل Visio به SVG را در Java با استفاده از Conholdate.Total انجام دهم؟
    از کلاس Converter همراه با SvgConvertOptions همان‌طور که در مثال کامل کد نشان داده شده است، استفاده کنید. SDK مدیریت فایل‌ها را انتزاع می‌کند و به شما اجازه می‌دهد بر پیکربندی و مسیرهای خروجی تمرکز کنید. استفادهٔ دقیق در مستندات Conholdate.Total for Java پوشش داده شده است.

  • کدام فرمت‌های فایل Visio برای خروجی SVG پشتیبانی می‌شوند؟
    کتابخانه فرمت‌های VSD، VSDX، VDX، VSS، VSSX، VST و VSTX را پشتیبانی می‌کند. همه این‌ها می‌توانند با همان فراخوانی‌های API پردازش شوند و فایل‌های SVG با کیفیت بالا تولید می‌کنند.

  • آیا برای اجرای تبدیل در محیط تولید به مجوز نیاز دارم؟
    بله. یک مجوز معتبر برای محیط‌های تولید مورد نیاز است. می‌توانید یک مجوز موقت را از صفحه مجوز موقت دریافت کنید و قیمت‌گذاری کامل را در صفحه قیمت‌گذاری بررسی کنید.

  • آیا می‌توانم خروجی SVG را سفارشی کنم، مانند تعبیه تصاویر یا تنظیم اندازه صفحه؟
    مطمئناً. کلاس SvgConvertOptions ویژگی‌هایی مانند setEmbedImages، setPageSize، setScale و setQuality را فراهم می‌کند. قبل از فراخوانی convert این موارد را تنظیم کنید تا با نیازهای خاص رندرینگ شما مطابقت داشته باشد.

مقالات مرتبط