public Przeciaganie(Rozmieszczenia _R, widok_matryca _WM, Jądro _J) { R = _R; WM = _WM; J = _J; kopiaR = _R; MessageBoxResult result = MessageBox.Show("Rozmieszczono figury. \nCzy chesz poprawićrozmieszczenie ręcznie?", "Rozmieszczanie manualne", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { _R.czyZmienaneRecznie = true; Okno = new manualna_edycja_okno_info(this); Okno.Show(); czyEdytowac = true; rzaz = J.odstep; kopiaPunktow = new Dictionary <int, Punkt>(); foreach (MatrycaFiguraPunkt O in R.lokalizacja_figur) { kopiaPunktow.Add(O.figura.ID, new Punkt(O.p.x, O.p.y)); } } else if (result == MessageBoxResult.No) { czyEdytowac = false; } }
private static void GetInfoPDF(Jądro J, int i, iTextSharp.text.pdf.PdfPTable table, List <string> listawybranychinformacji) { foreach (var item in listawybranychinformacji) { if (item == "Numer Matrycy") { iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(); iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); p.Add(new iTextSharp.text.Phrase("Numer Matrycy")); p.Add(new iTextSharp.text.Phrase(Jądro.NAJLEPSZE.wypiszNRMatrycy(i))); p.Alignment = iTextSharp.text.Element.ALIGN_CENTER; if (Jądro.NAJLEPSZE.wypiszNRMatrycy(i) != "") { cell.AddElement(p); table.AddCell(cell); } } if (item == "ID") { iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(); iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); p.Add(new iTextSharp.text.Phrase("ID")); p.Add(new iTextSharp.text.Phrase(Jądro.NAJLEPSZE.wypiszID(i))); p.Alignment = iTextSharp.text.Element.ALIGN_CENTER; if (Jądro.NAJLEPSZE.wypiszNRMatrycy(i) != "") { cell.AddElement(p); table.AddCell(cell); } } if (item == "Punkt Zaczepienia") { iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(); iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); p.Add(new iTextSharp.text.Phrase("Punkt Zaczepienia")); p.Add(new iTextSharp.text.Phrase(Jądro.NAJLEPSZE.wypiszPunktZaczepienia(i))); p.Alignment = iTextSharp.text.Element.ALIGN_CENTER; if (Jądro.NAJLEPSZE.wypiszNRMatrycy(i) != "") { cell.AddElement(p); table.AddCell(cell); } } if (item == "Wymiary") { iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(); iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); p.Add(new iTextSharp.text.Phrase("Wymiary")); p.Add(new iTextSharp.text.Phrase(Jądro.NAJLEPSZE.wypiszWymiary(i))); p.Alignment = iTextSharp.text.Element.ALIGN_CENTER; if (Jądro.NAJLEPSZE.wypiszNRMatrycy(i) != "") { cell.AddElement(p); table.AddCell(cell); } } } }
public static void PDF(Jądro J, Widoki.widok_matryca W, Rysowanie rys, List <string> listawybranychinformacji) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "PDF file (*.pdf)|*.pdf"; // try // { if (saveFileDialog.ShowDialog() == true) { string path = System.AppDomain.CurrentDomain.BaseDirectory + "tmp"; DirectoryInfo di = Directory.CreateDirectory(path); iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4); iTextSharp.text.pdf.PdfWriter wri = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(saveFileDialog.FileName, FileMode.Create)); doc.Open(); if (listawybranychinformacji[0] == "Cztery na stronę") { iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(2); iTextSharp.text.pdf.PdfPTable tableInfo = new iTextSharp.text.pdf.PdfPTable(1); if (listawybranychinformacji.Count > 1) { tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } float[] widths = new float[] { iTextSharp.text.PageSize.A4.Width - doc.LeftMargin, iTextSharp.text.PageSize.A4.Width - doc.RightMargin }; table.SetWidths(widths); table.DefaultCell.FixedHeight = (iTextSharp.text.PageSize.A4.Height - (2 * doc.BottomMargin)) / 2; table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; Wszystkie(W, rys, true); for (int i = 0; i <= rys.liczba_matryc; i++) { iTextSharp.text.Image PNG = iTextSharp.text.Image.GetInstance(System.AppDomain.CurrentDomain.BaseDirectory + "tmp\\matryca" + i + ".png"); RotationPNG(PNG); table.AddCell(PNG); if (rys.liczba_matryc + 1 % 2 != 0 && i + 1 > rys.liczba_matryc) { table.AddCell(new iTextSharp.text.pdf.PdfPCell(new iTextSharp.text.Phrase(""))); } if (listawybranychinformacji.Count > 1 && i % 4 == 0) { for (int k = i; k <= i + 3; k++) { GetInfoPDF(J, k, tableInfo, listawybranychinformacji); } doc.Add(tableInfo); doc.NewPage(); tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } if ((i % 4 == 3 && i != 0) || i + 1 > rys.liczba_matryc) { doc.Add(table); doc.NewPage(); table = new iTextSharp.text.pdf.PdfPTable(2); table.SetWidths(widths); table.DefaultCell.FixedHeight = (iTextSharp.text.PageSize.A4.Height - (2 * doc.BottomMargin)) / 2; table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; } } } else if (listawybranychinformacji[0] == "Dwie na stronę") { iTextSharp.text.pdf.PdfPTable tableInfo = new iTextSharp.text.pdf.PdfPTable(1); iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(1); if (listawybranychinformacji.Count > 1) { tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } float[] widths = new float[] { iTextSharp.text.PageSize.A4.Width - doc.LeftMargin }; table.SetWidths(widths); table.DefaultCell.FixedHeight = (iTextSharp.text.PageSize.A4.Height - (2 * doc.BottomMargin)) / 2; table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; Wszystkie(W, rys, true); for (int i = 0; i <= rys.liczba_matryc; i++) { iTextSharp.text.Image PNG = iTextSharp.text.Image.GetInstance(System.AppDomain.CurrentDomain.BaseDirectory + "tmp\\matryca" + i + ".png"); RotationPNG(PNG); table.AddCell(PNG); if (listawybranychinformacji.Count > 1 && i % 2 == 0) { for (int k = i; k <= i + 1; k++) { GetInfoPDF(J, k, tableInfo, listawybranychinformacji); } doc.Add(tableInfo); doc.NewPage(); tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } if (i % 2 != 0 && i != 0 || i + 1 > rys.liczba_matryc) { doc.Add(table); doc.NewPage(); table = new iTextSharp.text.pdf.PdfPTable(1); table.SetWidths(widths); table.DefaultCell.FixedHeight = (iTextSharp.text.PageSize.A4.Height - (2 * doc.BottomMargin)) / 2; table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; } } } else if (listawybranychinformacji[0] == "Jedna na stronę") { iTextSharp.text.pdf.PdfPTable tableInfo = new iTextSharp.text.pdf.PdfPTable(1); iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(1); table.DefaultCell.FixedHeight = (iTextSharp.text.PageSize.A4.Height - (2 * doc.BottomMargin)); table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; Wszystkie(W, rys, true); if (listawybranychinformacji.Count > 1) { tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } for (int i = 0; i <= rys.liczba_matryc; i++) { iTextSharp.text.Image PNG = iTextSharp.text.Image.GetInstance(System.AppDomain.CurrentDomain.BaseDirectory + "tmp\\matryca" + i + ".png"); RotationPNG(PNG); table.AddCell(PNG); if (listawybranychinformacji.Count > 1) { GetInfoPDF(J, i, tableInfo, listawybranychinformacji); doc.Add(tableInfo); doc.NewPage(); tableInfo = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } doc.Add(table); doc.NewPage(); table = new iTextSharp.text.pdf.PdfPTable(1); table.DefaultCell.VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE; table.DefaultCell.HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER; } } else if (listawybranychinformacji[0] == "Brak") { if (listawybranychinformacji.Count > 1) { iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); for (int i = 0; i <= rys.liczba_matryc; i++) { GetInfoPDF(J, i, table, listawybranychinformacji); doc.Add(table); table = new iTextSharp.text.pdf.PdfPTable(listawybranychinformacji.Count - 1); } } } doc.Close(); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } di.Delete(); } // } // catch { // MessageBox.Show("Coś poszło nie tak!","Błąd!", MessageBoxButton.OK,MessageBoxImage.Warning); // } }