PdfConverter Batch Conversion Guide
PdfConverter Batch Conversion Guide
This guide shows how to batch convert multiple Visio diagram files to PDF using PdfConverter in Aspose.Diagram for .NET.
Prerequisites
- Aspose.Diagram for .NET (version 26.4.0 or later)
- Valid Aspose license applied before any conversions
Step 1: Basic Batch Conversion
Convert all VSDX files in an input directory to PDF in a separate output directory:
using System.IO;
using Aspose.Diagram.LowCode;
string inputDir = "diagrams/input";
string outputDir = "diagrams/pdf-output";
Directory.CreateDirectory(outputDir);
foreach (string file in Directory.GetFiles(inputDir, "*.vsdx"))
{
string output = Path.Combine(outputDir, Path.GetFileNameWithoutExtension(file) + ".pdf");
PdfConverter.Process(file, output);
Console.WriteLine($"Exported: {Path.GetFileName(file)} → {Path.GetFileName(output)}");
}Step 2: Batch with Error Isolation
Isolate failures so one corrupt file does not abort the entire batch:
using System;
using System.IO;
using Aspose.Diagram.LowCode;
string inputDir = "diagrams/input";
string outputDir = "diagrams/pdf-output";
Directory.CreateDirectory(outputDir);
int successCount = 0;
int failureCount = 0;
foreach (string file in Directory.GetFiles(inputDir, "*.vsdx"))
{
string output = Path.Combine(outputDir, Path.GetFileNameWithoutExtension(file) + ".pdf");
try
{
PdfConverter.Process(file, output);
successCount++;
Console.WriteLine($"OK: {Path.GetFileName(file)}");
}
catch (Exception ex)
{
failureCount++;
Console.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}");
}
}
Console.WriteLine($"\nBatch complete: {successCount} succeeded, {failureCount} failed");Step 3: Batch with PDF/A Compliance
Apply PDF/A-1b compliance to all files in the batch:
using System;
using System.IO;
using Aspose.Diagram.LowCode;
using Aspose.Diagram.Saving;
string inputDir = "diagrams/input";
string outputDir = "diagrams/pdfa-output";
Directory.CreateDirectory(outputDir);
var pdfOptions = new PdfSaveOptions();
pdfOptions.Compliance = PdfCompliance.PdfA1b;
foreach (string file in Directory.GetFiles(inputDir, "*.vsdx"))
{
string output = Path.Combine(outputDir, Path.GetFileNameWithoutExtension(file) + ".pdf");
var loadOptions = new LowCodeLoadOptions();
loadOptions.InputFile = file;
var saveOptions = new LowCodePdfSaveOptions();
saveOptions.OutputFile = output;
saveOptions.PdfOptions = pdfOptions;
PdfConverter.Process(loadOptions, saveOptions);
Console.WriteLine($"PDF/A exported: {Path.GetFileName(output)}");
}Step 4: Batch with Multiple Input Formats
Process a mixed directory of Visio files (VSDX, VSD, VDX):
using System;
using System.IO;
using Aspose.Diagram.LowCode;
string inputDir = "diagrams/mixed-input";
string outputDir = "diagrams/pdf-output";
Directory.CreateDirectory(outputDir);
string[] patterns = { "*.vsdx", "*.vsd", "*.vdx" };
foreach (string pattern in patterns)
{
foreach (string file in Directory.GetFiles(inputDir, pattern))
{
string output = Path.Combine(outputDir, Path.GetFileNameWithoutExtension(file) + ".pdf");
try
{
PdfConverter.Process(file, output);
Console.WriteLine($"OK: {Path.GetFileName(file)}");
}
catch (Exception ex)
{
Console.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}");
}
}
}Supported Input Formats
| Format | Extension |
|---|---|
| Visio Drawing (modern) | .vsdx |
| Visio Drawing (legacy) | .vsd |
| Visio XML Drawing | .vdx |
| Visio Macro-Enabled Drawing | .vsdm |
| Visio Stencil | .vssx |
| Visio Template | .vstx |
Troubleshooting
| Problem | Likely Cause | Fix |
|---|---|---|
| Evaluation watermark in PDFs | License not applied | Apply metered licensing via metered.SetMeteredKey() before starting the batch loop |
| Output directory not found | Directory not created | Call Directory.CreateDirectory(outputDir) before the loop |
| Batch fails on first error | No per-file try/catch | Wrap each Process() call in its own try/catch block |
| Mixed format files skipped | Pattern only matches one extension | Loop over multiple patterns as shown in Step 4 |