Beispiel #1
0
        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));
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }