public byte[] DwgToPdf(FileInfo sourceFile)
{
var sourceFilePath = sourceFile.FullName;
using (var cadImage = (CadImage)Image.Load(sourceFilePath))
{
var layoutWidth = cadImage.Width;
var cadImageHeight = cadImage.Height;
var layoutValueDictionary = cadImage.Layouts.Values;
var layoutValues = new List<CadLayout>();
foreach (CadLayout layoutsValue in layoutValueDictionary)
{
layoutValues.Add(layoutsValue);
}
var layouts = layoutValues.Take(1).ToArray();
var pageWidth = layoutWidth * 1.0;
var pageHeight = cadImageHeight * 1.0;
var maxValue = pageWidth > pageHeight ? pageWidth : pageHeight;
var scale = 3508.0 / maxValue;
pageWidth *= scale;
pageHeight *= scale;
var rasterizationOptions = new CadRasterizationOptions
{
PageWidth = (int)pageWidth,
PageHeight = (int)pageHeight,
ContentAsBitmap = true,
Layouts = layouts.Select(p => p.LayoutName).ToArray()
};
var pdfOptions = new PdfOptions
{
VectorRasterizationOptions = rasterizationOptions,
};
using (var memoryStream = new MemoryStream())
{
cadImage.Save(memoryStream, pdfOptions);
return memoryStream.ToArray();
}
}
}