public void GetCellForTableTest() { var rtfTable = new RtfTable(3, 3, 20, 20); var rtfTableCell = rtfTable.cell(1, 2); Assert.AreEqual(2, rtfTableCell.ColIndex); }
public override void AddTableCell(string content, IFont font, TextAlignment alignment) { var cell = fTable.cell(fTableRow, fTableCol); if (!string.IsNullOrEmpty(content)) { var par = cell.addParagraph(); par.Alignment = iAlignments[(int)alignment]; addParagraphChunk(par, content, font); } fTableCol += 1; if (fTableCol == fTable.ColCount) { fTableRow += 1; fTableCol = 0; } }
public void RTL_TableRendereTestWithReadingDirectionLeftToRight() { var rtfTable = new RtfTable(1, 2, 20, 20, ReadingDirection.LeftToRight); var sb = new StringBuilder(); sb.AppendLine(string.Format(@"{{\trowd\{0}row\trgaph\trpaddl0\trpaddt0\trpaddr0\trpaddb0", LtrContent)) .AppendLine(@"\trleft0") .AppendLine() .AppendLine( @"\clbrdrt\brdrw40\brdrs\brdrcf0\clbrdrr\brdrw20\brdrdot\brdrcf0\clbrdrb\brdrw40\brdrs\brdrcf0\clbrdrl\brdrw40\brdrs\brdrcf0\clvertalt\cellx200") .AppendLine( @"\clbrdrt\brdrw40\brdrs\brdrcf0\clbrdrr\brdrw40\brdrs\brdrcf0\clbrdrb\brdrw40\brdrs\brdrcf0\clbrdrl\brdrw20\brdrdot\brdrcf0\clvertalt\cellx400") .AppendLine(@"\pard\intbl\fi0\ltrpar\ql") .AppendLine("CELL 0,0") .AppendLine() .AppendLine() .AppendLine(@"\cell") .AppendLine(@"\pard\intbl\fi0\ltrpar\ql") .AppendLine("CELL 0,1") .AppendLine() .AppendLine() .AppendLine(@"\cell") .AppendLine(@"\row}") .Append(@"\sl-400\slmult"); rtfTable.Margins[Direction.Bottom] = 20; rtfTable.setInnerBorder(BorderStyle.Dotted, 1f); rtfTable.setOuterBorder(BorderStyle.Single, 2f); var expectString = sb.ToString(); for (var i = 0; i < rtfTable.RowCount; i++) { for (var j = 0; j < rtfTable.ColCount; j++) { rtfTable.cell(i, j).addParagraph().setText("CELL " + i.ToString() + "," + j.ToString()); } } var result = rtfTable.render(); Assert.AreEqual(expectString, result); }
private void btnReport_Click(object sender, EventArgs e) { try { RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Portrait, Lcid.Russian); RtfParagraph p = doc.addParagraph(); p.Alignment = Align.Center; p.DefaultCharFormat.FontSize = 14.0f; p.DefaultCharFormat.FontStyle.addStyle(FontStyleFlag.Bold); p.Text = "Статистика баллов ЕГЭ по регионам"; if (chbEntered.Checked) { p.Text += " среди зачисленных абитуриентов"; } doc.addParagraph().Text = ""; p = doc.addParagraph(); p.Alignment = Align.Left; if (FacultyId.HasValue) { p.Text = cbFaculty.Text; } else { p.Text = "По всему университету"; } if (LicenseProgramId.HasValue) { p = doc.addParagraph(); p.Alignment = Align.Left; p.Text = "Направление: " + cbLicenseProgram.Text; } if (ObrazProgramId.HasValue) { p = doc.addParagraph(); p.Alignment = Align.Left; p.Text = "Образовательная программа: " + cbObrazProgram.Text; } p = doc.addParagraph(); //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS if (StudyFormId.HasValue) { p.Text = "Форма обучения: " + cbStudyForm.Text; } else { p.Text = "Все формы обучения"; } p = doc.addParagraph(); //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS if (StudyFormId.HasValue) { p.Text = "Основа обучения: " + cbStudyBasis.Text; } else { p.Text = "Все основы обучения"; } p = doc.addParagraph(); //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS p.Text = "Предмет: " + cbEgeExamName.Text; doc.addParagraph().Text = ""; RtfTable table = doc.addTable(dgv.Rows.Count + 1, dgv.ColumnCount); table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.25f); table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.25f); //заголовки for (int i = 0; i < dgv.ColumnCount; i++) { table.cell(0, i).Alignment = Align.Center; table.cell(0, i).addParagraph().Text = dgv.Columns[i].Name; } table.setColWidth(0, (float)(60.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(1, (float)(25.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(2, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(3, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(4, (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS)); DataView dv = new DataView((DataTable)dgv.DataSource); dv.Sort = "Кол-во абитуриентов DESC"; int rowId = 1; foreach (DataRow rw in dv.ToTable().Rows) { int colId = 0; foreach (DataColumn col in dv.ToTable().Columns) { var par = table.cell(rowId, colId).addParagraph(); par.Text = rw[col.ColumnName].ToString(); par.Alignment = Align.Center; colId++; } //запрет переноса строк table.setRowKeepInSamePage(rowId++, false); } doc.save(MainClass.saveTempFolder + "/Report.rtf"); System.Diagnostics.Process.Start(MainClass.saveTempFolder + "/Report.rtf"); } catch (Exception ex) { WinFormsServ.Error(ex.Message); } }
private void CPK_Rtf() { RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian); string sFac = cbFaculty.Text.ToLower(); if (sFac.CompareTo("все") == 0) { sFac = "всех факультетов "; } else { if (ComboServ.GetComboId(cbFaculty) == "10") { sFac = "медицинского колледжа "; } else if (ComboServ.GetComboId(cbFaculty) == "3") { sFac = "высшей школы менеджмента "; } else { sFac = sFac.Replace("кий", "кого ").Replace("ый", "ого ").Replace("акультет", "акультета"); } } string sForm = cbStudyForm.Text.ToLower(); if (sForm.CompareTo("все") == 0) { sForm = " всех форм обучения "; } else { sForm = sForm.Replace("ая", "ой").Replace("яя", "ей") + " формы обучения "; } doc.addParagraph().Text = string.Format("Ежедневная информация (форма ЦПК)\r\n{0}\r\n{1}", sFac + " " + sForm, "на " + DateTime.Now.ToShortDateString()); RtfTable tbl = doc.addTable(2 + dgvData.Rows.Count, 1 + dgvData.ColumnCount); //делаем заголовки // tbl.merge(0, 0, 2, 1); tbl.FillCell(0, 0, "", FontStyleFlag.Normal); tbl.merge(0, 1, 2, 1); tbl.FillCell(0, 1, "Направление, специальность", FontStyleFlag.Normal); tbl.merge(0, 2, 2, 1); tbl.FillCell(0, 0, "Шифр", FontStyleFlag.Normal); tbl.merge(0, 3, 1, 2); tbl.FillCell(0, 0, "План приема", FontStyleFlag.Normal); tbl.merge(0, 5, 1, 2); tbl.FillCell(0, 0, "Количество поданных заявлений", FontStyleFlag.Normal); tbl.merge(0, 7, 1, 2); tbl.FillCell(0, 0, "Конкурс", FontStyleFlag.Normal); tbl.FillCell(1, 3, "бюджет", FontStyleFlag.Normal); tbl.FillCell(1, 4, "догов.", FontStyleFlag.Normal); tbl.FillCell(1, 5, "бюджет", FontStyleFlag.Normal); tbl.FillCell(1, 6, "догов.", FontStyleFlag.Normal); tbl.FillCell(1, 7, "бюджет", FontStyleFlag.Normal); tbl.FillCell(1, 8, "догов.", FontStyleFlag.Normal); int iRow = 3; RtfParagraph p; foreach (DataGridViewRow row in dgvData.Rows) { string sProgramName = row.Cells[1].Value.ToString(); if (!sProgramName.StartsWith(" ", StringComparison.OrdinalIgnoreCase)) { } p = tbl.cell(iRow, 0).addParagraph(); p.Text = (iRow - 2).ToString(); } doc.render(); }
private void ToWord() { int rowCount = dgvAbits.Rows.Count; if (rowCount == 0) { return; } try { float margin = (float)(20.0m * RtfConstants.MILLIMETERS_TO_POINTS); RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian, margin, margin, margin, margin); RtfTable table = doc.addTable(rowCount + 1, 14, (float)(276.1m * RtfConstants.MILLIMETERS_TO_POINTS)); // Устанавливаем ширину столбцов таблицы (в миллиметрах) table.setColWidth(0, (float)(8.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(1, (float)(18.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(2, (float)(40.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(3, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(4, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(5, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(6, (float)(15.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(7, (float)(18.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(8, (float)(45.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(9, (float)(15.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(10, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(11, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(12, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(13, (float)(15.1m * RtfConstants.MILLIMETERS_TO_POINTS)); table.cell(0, 0).addParagraph().Text = "№ п/п"; table.cell(0, 1).addParagraph().Text = "Рег.номер"; table.cell(0, 2).addParagraph().Text = "ФИО"; table.cell(0, 3).addParagraph().Text = "Сумма баллов"; table.cell(0, 4).addParagraph().Text = "Проф. экзамен"; table.cell(0, 5).addParagraph().Text = "Доп. экзамен"; table.cell(0, 6).addParagraph().Text = "Конкурс"; table.cell(0, 7).addParagraph().Text = "Подлинники"; table.cell(0, 8).addParagraph().Text = "Контакты"; table.cell(0, 9).addParagraph().Text = "Медалист"; table.cell(0, 10).addParagraph().Text = "Серия док. об обр."; table.cell(0, 11).addParagraph().Text = "ср. балл"; table.cell(0, 12).addParagraph().Text = "Ретинг. коэфф."; if (dgvAbits.Columns.Contains("Олимпиада")) { table.cell(0, 13).addParagraph().Text = "Олимпиада"; } for (int j = 0; j < 14; j++) { // Устанавливаем горизонтальное и вертикальное выравнивание текста "по центру" в каждой ячейке таблицы table.cell(0, j).Alignment = Align.Center; table.cell(0, j).AlignmentVertical = AlignVertical.Middle; } int r = 0; foreach (DataGridViewRow row in dgvAbits.Rows) { ++r; table.cell(r, 0).addParagraph().Text = r.ToString(); table.cell(r, 1).addParagraph().Text = row.Cells["Рег_Номер"].Value.ToString(); table.cell(r, 2).addParagraph().Text = row.Cells["ФИО"].Value.ToString(); table.cell(r, 3).addParagraph().Text = row.Cells["Сумма баллов"].Value.ToString(); table.cell(r, 4).addParagraph().Text = row.Cells["Проф. экзамен"].Value.ToString(); table.cell(r, 5).addParagraph().Text = row.Cells["Доп. экзамен"].Value.ToString(); table.cell(r, 6).addParagraph().Text = row.Cells["Конкурс"].Value.ToString(); table.cell(r, 7).addParagraph().Text = row.Cells["Подлинники документов"].Value.ToString(); table.cell(r, 8).addParagraph().Text = row.Cells["Контакты"].Value.ToString(); table.cell(r, 9).addParagraph().Text = row.Cells["Медалист"].Value.ToString(); table.cell(r, 10).addParagraph().Text = MainClass.dbType == PriemType.PriemMag ? row.Cells["Серия диплома"].Value.ToString() : row.Cells["Серия аттестата"].Value.ToString(); table.cell(r, 11).addParagraph().Text = row.Cells["Средний балл"].Value.ToString(); table.cell(r, 12).addParagraph().Text = row.Cells["Рейтинговый коэффициент"].Value.ToString(); if (dgvAbits.Columns.Contains("Олимпиада")) { table.cell(r, 13).addParagraph().Text = row.Cells["Олимпиада"].Value.ToString(); } for (int j = 0; j < 14; j++) { // Устанавливаем горизонтальное и вертикальное выравнивание текста "по центру" в каждой ячейке таблицы table.cell(r, j).Alignment = Align.Center; table.cell(r, j).AlignmentVertical = AlignVertical.Middle; } } // Задаём толщину внутренних границ таблицы table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.5f); // Задаём толщину внешних границ таблицы table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.5f); doc.save(MainClass.saveTempFolder + "\\RatingList.rtf"); // ========================================================================== // Открываем сохранённый RTF файл // ========================================================================== WordDoc wd = new WordDoc(string.Format(@"{0}\RatingList.rtf", MainClass.saveTempFolder)); } catch (Exception ex) { WinFormsServ.Error("Ошибка при составлении списка:\n" + ex.Message + ex.InnerException == null ? "" : ("\nВнутреннее исключение:\n" + ex.InnerException.Message)); } }
private void btnPrintMatrix_Click(object sender, EventArgs e) { using (PriemEntities context = new PriemEntities()) { var facs = context.SP_Faculty.Select(x => new { x.Id, x.Name, x.Acronym }).ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Fac"); foreach (string s in facs.Select(x => x.Name)) { dt.Columns.Add(s); } Watch wc = new Watch(facs.Count * 2); wc.Show(); foreach (var f in facs) { DataRow rw = dt.NewRow(); rw["Fac"] = f.Name; DataTable tblData = GetTableIntersect(f.Id); var data = from DataRow row in tblData.Rows select new { Id = row.Field <int>("FacultyId"), FacultyName = row.Field <string>("Факультет"), CNT = row.Field <int>("Количество людей") }; foreach (var d in data) { rw[d.FacultyName] = d.CNT; } dt.Rows.Add(rw); wc.PerformStep(); } RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian); RtfTable table = doc.addTable(dt.Rows.Count + 1, dt.Columns.Count); table.cell(0, 0).addParagraph().Text = ""; int m = 0; foreach (var f in facs) { table.FillCell(0, ++m, f.Acronym, FontStyleFlag.Normal); } int i = 1; table.CellPadding = 1.2f; table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.7f); table.setOuterBorder(RtfWriter.BorderStyle.Single, 1f); foreach (DataRow r in dt.Rows) { table.setColWidth(0, 260f); for (int j = 0; j < r.ItemArray.Count(); j++) { table.FillCell(i, j, i == j ? "-" : r[j].ToString(), j > 0 ? FontStyleFlag.Bold : FontStyleFlag.Normal); } i++; wc.PerformStep(); } wc.Close(); string fname = MainClass.saveTempFolder + "/stat.rtf"; doc.save(fname); System.Diagnostics.Process.Start(fname); } }
private void btnReport_Click(object sender, EventArgs e) { try { RtfDocument doc = new RtfDocument(PaperSize.A4, PaperOrientation.Landscape, Lcid.Russian); RtfParagraph p = doc.addParagraph(); p.Alignment = Align.Center; p.DefaultCharFormat.FontSize = 14.0f; p.DefaultCharFormat.FontStyle.addStyle(FontStyleFlag.Bold); p.Text = string.Format("Статистика по регионам по {0}абитуриентам", chbEntered.Checked ? "зачисленным " : ""); doc.addParagraph().Text = ""; p = doc.addParagraph(); p.Alignment = Align.Left; p.Text = "По региону: " + cbRegion.Text; p = doc.addParagraph(); //p.LineSpacing = RtfConstants.MILLIMETERS_TO_POINTS if (StudyFormId.HasValue) { p.Text = "Форма обучения: " + cbStudyForm.Text; } else { p.Text = "Все формы обучения"; } doc.addParagraph().Text = ""; RtfTable table = doc.addTable(dgv.Rows.Count + 1, dgv.ColumnCount); table.setInnerBorder(RtfWriter.BorderStyle.Single, 0.25f); table.setOuterBorder(RtfWriter.BorderStyle.Single, 0.25f); //заголовки for (int i = 0; i < dgv.ColumnCount; i++) { table.cell(0, i).Alignment = Align.Center; table.cell(0, i).addParagraph().Text = dgv.Columns[i].Name; } table.setColWidth(0, (float)(60.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(1, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(2, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(3, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(4, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(5, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(6, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(7, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(8, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(9, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(10, (float)(12.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(11, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(12, (float)(17.5m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(13, (float)(10.0m * RtfConstants.MILLIMETERS_TO_POINTS)); table.setColWidth(14, (float)(10.0m * RtfConstants.MILLIMETERS_TO_POINTS)); DataView dv = new DataView((DataTable)dgv.DataSource); dv.Sort = "Абитуриентов г/б DESC"; int rowId = 1; foreach (DataRow rw in dv.ToTable().Rows) { int colId = 0; foreach (DataColumn col in dv.ToTable().Columns) { var par = table.cell(rowId, colId).addParagraph(); par.Text = rw[col.ColumnName].ToString(); par.Alignment = Align.Center; colId++; } //запрет переноса строк table.setRowKeepInSamePage(rowId++, false); } doc.save(MainClass.saveTempFolder + "/RegionAbitStat_Rev_Report.rtf"); System.Diagnostics.Process.Start(MainClass.saveTempFolder + "/RegionAbitStat_Rev_Report.rtf"); } catch (Exception ex) { WinFormsServ.Error(ex.Message); } }