private static string ConvertToString(DxfFile dxf, PdfMeasurement?pageWidth = null, PdfMeasurement?pageHeight = null, double scale = 1.0) { var options = new DxfToPdfConverterOptions( pageWidth ?? PdfMeasurement.Inches(8.5), pageHeight ?? PdfMeasurement.Inches(11.0), scale); return(ConvertToString(dxf, options)); }
private static string ConvertToString(DxfFile dxf, DxfToPdfConverterOptions options) { var converter = new DxfToPdfConverter(); var pdf = converter.Convert(dxf, options); using (var ms = new MemoryStream()) { pdf.Save(ms); ms.Seek(0, SeekOrigin.Begin); var sb = new StringBuilder(); int b; while ((b = ms.ReadByte()) >= 0) { sb.Append((char)b); } return(sb.ToString()); } }
public override async Task Plot(Drawing drawing, ViewPort viewPort, Stream outputStream, Func <string, Task <byte[]> > contentResolver) { var converter = new DxfToPdfConverter(); var fileSettings = new DxfFileSettings() { FileVersion = DxfFileVersion.R2004, }; var dxfFile = DxfFileHandler.ToDxfFile(drawing, viewPort, fileSettings); var pageWidth = new PdfMeasurement(ViewModel.DisplayWidth, ViewModel.DisplayUnit); var pageHeight = new PdfMeasurement(ViewModel.DisplayHeight, ViewModel.DisplayUnit); var plotViewPort = ViewModel.ViewPort; var viewPortWidth = ViewModel.DisplayWidth / ViewModel.DisplayHeight * plotViewPort.ViewHeight; var dxfRect = new ConverterDxfRect(plotViewPort.BottomLeft.X, plotViewPort.BottomLeft.X + viewPortWidth, plotViewPort.BottomLeft.Y, plotViewPort.BottomLeft.Y + plotViewPort.ViewHeight); var pdfRect = new ConverterPdfRect( new PdfMeasurement(0.0, ViewModel.DisplayUnit), new PdfMeasurement(ViewModel.DisplayWidth, ViewModel.DisplayUnit), new PdfMeasurement(0.0, ViewModel.DisplayUnit), new PdfMeasurement(ViewModel.DisplayHeight, ViewModel.DisplayUnit)); var options = new DxfToPdfConverterOptions(pageWidth, pageHeight, dxfRect, pdfRect, contentResolver: contentResolver); var pdfFile = await converter.Convert(dxfFile, options); pdfFile.Save(outputStream); }
public void SourceDestinationTransformTest() { var dxf = new DxfFile(); // line from (2,2) to (3,3) dxf.Entities.Add(new DxfLine(new DxfPoint(2, 2, 0), new DxfPoint(3, 3, 0))); var options = new DxfToPdfConverterOptions(PdfMeasurement.Mm(210), PdfMeasurement.Mm(297), new ConverterDxfRect(2, 3, 2, 3), new ConverterPdfRect(PdfMeasurement.Points(100), PdfMeasurement.Points(200), PdfMeasurement.Points(300), PdfMeasurement.Points(400))); var pdf = ConvertToString(dxf, options); // expected line from (100,300)pt to (200,400)pt var expected = NormalizeCrLf(@" stream 0 w 0 0 0 RG 0 0 0 rg 100.00 300.00 m 200.00 400.00 l S endstream".Trim()); Assert.Contains(expected, pdf); }