public virtual void CalculateColumnWidthsNotPointValue() { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(new ByteArrayOutputStream())); Document doc = new Document(pdfDoc); Rectangle layoutBox = new Rectangle(0, 0, 1000, 100); Table table = new Table(UnitValue.CreatePercentArray(new float[] { 10, 10, 80 })); // Set margins and paddings in percents, which is not expected table.SetProperty(Property.MARGIN_RIGHT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.MARGIN_LEFT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.PADDING_RIGHT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.PADDING_LEFT, UnitValue.CreatePercentValue(7)); // Fill the table somehow. The layout area is wide enough to calculate the widths as expected for (int i = 0; i < 3; i++) { table.AddCell("Hello"); } // Create a TableRenderer, the instance of which will be used to test the application of margins and paddings TableRenderer tableRenderer = (TableRenderer)table.CreateRendererSubTree().SetParent(doc.GetRenderer()); tableRenderer.bordersHandler = (TableBorders) new SeparatedTableBorders(tableRenderer.rows, 3, tableRenderer .GetBorders(), 0); tableRenderer.ApplyMarginsAndPaddingsAndCalculateColumnWidths(layoutBox); // Specify that the render is not original in order not to recalculate the column widths tableRenderer.isOriginalNonSplitRenderer = false; MinMaxWidth minMaxWidth = tableRenderer.GetMinMaxWidth(); // TODO DEVSIX-3676: currently margins and paddings are still applied as if they are in points. After the mentioned ticket is fixed, the expected values should be updated. NUnit.Framework.Assert.AreEqual(minMaxWidth.GetMaxWidth(), 332.46f, 0.001); NUnit.Framework.Assert.AreEqual(minMaxWidth.GetMinWidth(), 332.46f, 0.001); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { ISettingsHandler handler = Application as ISettingsHandler; if (handler == null) { Error.WriteLine("The application doesn't support settings."); return CommandResultCode.ExecutionFailed; } if (args.MoveNext()) return CommandResultCode.SyntaxError; VarColumns[0].ResetWidth(); VarColumns[1].ResetWidth(); TableRenderer table = new TableRenderer(VarColumns, Out); table.EnableHeader = true; table.EnableFooter = true; foreach(KeyValuePair<string, string> setting in handler.Settings) { if (setting.Key == ApplicationSettings.SpecialLastCommand) continue; ColumnValue[] row = new ColumnValue[4]; row[0] = new ColumnValue(setting.Key); row[1] = new ColumnValue(setting.Value); table.AddRow(row); } table.CloseTable(); Error.WriteLine(); return CommandResultCode.Success; }
private static Image GetWatermarkedImage(PdfDocument pdfDocument, Image img) { float width = img.GetImageScaledWidth(); float height = img.GetImageScaledHeight(); Table table = InitTable(width); TableRenderer renderer = (TableRenderer)table.CreateRendererSubTree(); renderer.SetParent(new DocumentRenderer(new Document(pdfDocument))); // Simulate the positioning of the renderer to find out how much space the table will occupy. LayoutResult result = renderer.Layout(new LayoutContext(new LayoutArea( 1, new Rectangle(10000, 10000)))); PdfFormXObject template = new PdfFormXObject(new Rectangle(width, height)); new Canvas(template, pdfDocument) .Add(img) .Close(); float left = 0; float bottom = height - result.GetOccupiedArea().GetBBox().GetHeight(); new Canvas(template, pdfDocument) .Add(table.SetFixedPosition(left, bottom, width)) .Close(); return(new Image(template)); }
public virtual void SpecialScriptPreLayoutProcessing() { PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new MemoryStream())); Document document = new Document(pdfDocument); int thaiTextSplitPosition = THAI_TEXT.Length / 2; PdfFont font = PdfFontFactory.CreateFont(THAI_FONT, PdfEncodings.IDENTITY_H); TextRenderer textRendererFirstPart = new TextRenderer(new Text(THAI_TEXT.JSubstring(0, thaiTextSplitPosition ))); textRendererFirstPart.SetProperty(Property.FONT, font); textRendererFirstPart.SetText(THAI_TEXT.JSubstring(0, thaiTextSplitPosition)); TextRenderer textRendererSecondPart = new TextRenderer(new Text(THAI_TEXT.Substring(thaiTextSplitPosition) )); textRendererSecondPart.SetProperty(Property.FONT, font); textRendererSecondPart.SetText(THAI_TEXT.Substring(thaiTextSplitPosition)); TableRenderer floatingNonTextRenderer = new TableRenderer(new Table(3)); floatingNonTextRenderer.SetProperty(Property.FLOAT, FloatPropertyValue.RIGHT); TableRenderer regularNonTextRenderer = new TableRenderer(new Table(3)); LineRenderer lineRenderer = new LineRenderer(); lineRenderer.SetParent(document.GetRenderer()); lineRenderer.AddChild(textRendererFirstPart); lineRenderer.AddChild(floatingNonTextRenderer); lineRenderer.AddChild(textRendererSecondPart); lineRenderer.AddChild(regularNonTextRenderer); LineRenderer.SpecialScriptsContainingTextRendererSequenceInfo info = lineRenderer.GetSpecialScriptsContainingTextRendererSequenceInfo (0); int numberOfSequentialTextRenderers = info.numberOfSequentialTextRenderers; String sequentialTextContent = info.sequentialTextContent; IList <int> indicesOfFloating = info.indicesOfFloating; NUnit.Framework.Assert.AreEqual(3, numberOfSequentialTextRenderers); NUnit.Framework.Assert.AreEqual(THAI_TEXT, sequentialTextContent); NUnit.Framework.Assert.AreEqual(1, indicesOfFloating.Count); NUnit.Framework.Assert.AreEqual(1, (int)indicesOfFloating[0]); IList <int> possibleBreaks = new List <int>(JavaUtil.ArraysAsList(3, 8, 10, 12, 15, 20, 23, 26, 28, 30, 36)); lineRenderer.DistributePossibleBreakPointsOverSequentialTextRenderers(0, numberOfSequentialTextRenderers, possibleBreaks, indicesOfFloating); IList <int> possibleBreaksFirstPart = textRendererFirstPart.GetSpecialScriptsWordBreakPoints(); NUnit.Framework.Assert.IsNotNull(possibleBreaksFirstPart); IList <int> possibleBreaksSecondPart = textRendererSecondPart.GetSpecialScriptsWordBreakPoints(); NUnit.Framework.Assert.IsNotNull(possibleBreaksSecondPart); int indexOfLastPossibleBreakInTheFirstRenderer = 4; IList <int> expectedPossibleBreaksFirstPart = possibleBreaks.SubList(0, indexOfLastPossibleBreakInTheFirstRenderer + 1); IList <int> expectedPossibleBreaksSecondPart = possibleBreaks.SubList(indexOfLastPossibleBreakInTheFirstRenderer + 1, possibleBreaks.Count); NUnit.Framework.Assert.AreEqual(expectedPossibleBreaksFirstPart, possibleBreaksFirstPart); for (int i = 0; i < expectedPossibleBreaksSecondPart.Count; i++) { expectedPossibleBreaksSecondPart[i] = expectedPossibleBreaksSecondPart[i] - thaiTextSplitPosition; } NUnit.Framework.Assert.AreEqual(expectedPossibleBreaksSecondPart, possibleBreaksSecondPart); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { PropertyRegistry properties = Properties; if (properties == null) { Application.Error.WriteLine("the current context does not support properties."); return CommandResultCode.ExecutionFailed; } if (args.MoveNext()) { string name = args.Current; PropertyHolder holder = properties.GetProperty(name); if (holder == null) return CommandResultCode.ExecutionFailed; PrintDescription(name, holder, Application.Error); return CommandResultCode.Success; } ProperiesColumns[0].ResetWidth(); ProperiesColumns[1].ResetWidth(); TableRenderer table = new TableRenderer(ProperiesColumns, Application.Out); foreach(KeyValuePair<string, PropertyHolder> entry in properties) { ColumnValue[] row = new ColumnValue[3]; PropertyHolder holder = entry.Value; row[0] = new ColumnValue(entry.Key); row[1] = new ColumnValue(holder.Value); row[2] = new ColumnValue(holder.ShortDescription); table.AddRow(row); } table.CloseTable(); return CommandResultCode.Success; }
public virtual void MultipleFloatsFollowedByUnfittingThaiRenderer() { PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new MemoryStream())); Document document = new Document(pdfDocument); LineRenderer lineRenderer = new LineRenderer(); lineRenderer.SetParent(document.GetRenderer()); PdfFont font = PdfFontFactory.CreateFont(THAI_FONT, PdfEncodings.IDENTITY_H); IDictionary <int, LayoutResult> specialScriptLayoutResults = new Dictionary <int, LayoutResult>(); int indexOfThaiRenderer = 3; for (int i = 0; i < indexOfThaiRenderer; i++) { TableRenderer tableRenderer = new TableRenderer(new Table(3)); tableRenderer.SetProperty(Property.FLOAT, FloatPropertyValue.LEFT); lineRenderer.AddChild(tableRenderer); } TextRenderer textRenderer = new TextRenderer(new Text("")); textRenderer.SetProperty(Property.FONT, font); textRenderer.SetText(THAI_WORD); textRenderer.SetSpecialScriptsWordBreakPoints(new List <int>(JavaUtil.ArraysAsList(THAI_WORD.Length))); lineRenderer.AddChild(textRenderer); LayoutArea layoutArea = new LayoutArea(1, new Rectangle(0, 0, 0, 100)); specialScriptLayoutResults.Put(indexOfThaiRenderer, new LayoutResult(LayoutResult.NOTHING, layoutArea, null , null)); LineRenderer.LastFittingChildRendererData lastFittingChildRendererData = lineRenderer.GetIndexAndLayoutResultOfTheLastRendererToRemainOnTheLine (indexOfThaiRenderer, specialScriptLayoutResults, false, new List <IRenderer>()); NUnit.Framework.Assert.AreEqual(indexOfThaiRenderer, lastFittingChildRendererData.childIndex); NUnit.Framework.Assert.AreEqual(LayoutResult.NOTHING, lastFittingChildRendererData.childLayoutResult.GetStatus ()); }
public void TableRendererTest1() { var pointList = new List <Point> { new Point(1, 2), new Point(3, 4) }; var tableIn = new Collection <Collection <object> > { new Collection <object> { "y", "x" } }; var renderer = new TableRenderer <Point>(GetTableValues); var resultTable = renderer.MakeTableTable(pointList, tableIn); Assert.AreEqual(3, resultTable.Count); var header = resultTable[0] as Collection <object>; Assert.IsNotNull(header); Assert.AreEqual("report:Y", header[0]); Assert.AreEqual("report:X", header[1]); var row1 = resultTable[1] as Collection <object>; Assert.IsNotNull(row1); Assert.AreEqual(2, row1[0]); Assert.AreEqual(1, row1[1]); }
public static void Main() { //var renderer = new TableRenderer<User>(new[] { "User Id", "Name", "Birthdate", "Location" }, user => user.Id, user => user.Name, user => user.DateOfBirth, user => string.Format("{0:00.00} : {1:00.00}", user.Location.Lat, user.Location.Lon)); var renderer = new TableRenderer<User>(); var rnd = new Random(); while (true) { var users = new List<User>(); var max = rnd.Next(5, 10); for (var x = 0; x <= max; x++) { var user = new User { Id = Guid.NewGuid(), DateOfBirth = DateTimeOffset.Now.AddDays(rnd.Next(-6000, -3000)), Location = new Location { Lat = rnd.Next(0, 90), Lon = rnd.Next(-180, 180) }, Name = "Test User" }; users.Add(user); } renderer.Content = users; Thread.Sleep(1000); } }
/// <summary>Table interface, providing full details about the comparison</summary> public Collection <object> DoTable(Collection <Collection <object> > tableIn) { var renderer = new TableRenderer <IMeasurementComparison>(GetTableValues); var resultTable = renderer.MakeTableTable(Result.Values, tableIn); return(resultTable); }
public virtual void TestProcessCellPointWidthValue() { Table table = new Table(UnitValue.CreatePercentArray(2)).UseAllAvailableWidth(); table.SetMarginTop(5); for (int i = 0; i < 4; i++) { Cell cell = new Cell().Add(new Paragraph("smth" + i)); cell.SetProperty(Property.WIDTH, UnitValue.CreatePointValue(250)); table.AddCell(cell); } TableRenderer tableRenderer = new TableRenderer(table); CellRenderer[] row1 = new CellRenderer[] { new CellRenderer(table.GetCell(0, 0)), new CellRenderer(table.GetCell (0, 1)) }; CellRenderer[] row2 = new CellRenderer[] { new CellRenderer(table.GetCell(1, 0)), new CellRenderer(table.GetCell (1, 1)) }; tableRenderer.rows[0] = row1; tableRenderer.rows[1] = row2; table.SetBorder(new SolidBorder(ColorConstants.GREEN, 5)); tableRenderer.bordersHandler = new SeparatedTableBorders(tableRenderer.rows, table.GetNumberOfColumns(), tableRenderer .GetBorders()); TableWidths tableWidths = new TableWidths(tableRenderer, 150, true, 15, 15); IList <TableWidths.CellInfo> cells = tableWidths.AutoLayoutCustom(); foreach (TableWidths.CellInfo cell in cells) { tableWidths.ProcessCell(cell); } }
protected internal override TableBorders UpdateBordersOnNewPage(bool isOriginalNonSplitRenderer, bool isFooterOrHeader , TableRenderer currentRenderer, TableRenderer headerRenderer, TableRenderer footerRenderer) { if (!isFooterOrHeader) { // collapse all cell borders if (isOriginalNonSplitRenderer) { if (null != rows) { ProcessAllBordersAndEmptyRows(); rightBorderMaxWidth = GetMaxRightWidth(); leftBorderMaxWidth = GetMaxLeftWidth(); } } } if (null != footerRenderer) { float rightFooterBorderWidth = footerRenderer.bordersHandler.GetMaxRightWidth(); float leftFooterBorderWidth = footerRenderer.bordersHandler.GetMaxLeftWidth(); leftBorderMaxWidth = Math.Max(leftBorderMaxWidth, leftFooterBorderWidth); rightBorderMaxWidth = Math.Max(rightBorderMaxWidth, rightFooterBorderWidth); } if (null != headerRenderer) { float rightHeaderBorderWidth = headerRenderer.bordersHandler.GetMaxRightWidth(); float leftHeaderBorderWidth = headerRenderer.bordersHandler.GetMaxLeftWidth(); leftBorderMaxWidth = Math.Max(leftBorderMaxWidth, leftHeaderBorderWidth); rightBorderMaxWidth = Math.Max(rightBorderMaxWidth, rightHeaderBorderWidth); } return(this); }
public virtual void CalculateColumnWidthsNotPointValue() { NUnit.Framework.Assert.That(() => { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(new FileStream("table_out.pdf", FileMode.Create))); Document doc = new Document(pdfDoc); LayoutArea area = new LayoutArea(1, new Rectangle(0, 0, 100, 100)); LayoutContext layoutContext = new LayoutContext(area); Rectangle layoutBox = area.GetBBox().Clone(); Table table = new Table(UnitValue.CreatePercentArray(new float[] { 10, 10, 80 })); table.SetProperty(Property.MARGIN_RIGHT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.MARGIN_LEFT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.PADDING_RIGHT, UnitValue.CreatePercentValue(7)); table.SetProperty(Property.PADDING_LEFT, UnitValue.CreatePercentValue(7)); table.AddCell("Col a"); table.AddCell("Col b"); table.AddCell("Col c"); table.AddCell("Value a"); table.AddCell("Value b"); table.AddCell("This is a long description for column c. " + "It needs much more space hence we made sure that the third column is wider." ); doc.Add(table); TableRenderer tableRenderer = (TableRenderer)table.GetRenderer(); tableRenderer.ApplyMarginsAndPaddingsAndCalculateColumnWidths(layoutBox); } , NUnit.Framework.Throws.InstanceOf <NullReferenceException>()) ; }
public virtual void TestProcessCellsRemainWidth02() { TableRenderer tableRenderer = CreateTableRendererWithDiffColspan(320); TableWidths tableWidths = new TableWidths(tableRenderer, 150, true, 15, 15); IList <TableWidths.CellInfo> cells = tableWidths.AutoLayoutCustom(); foreach (TableWidths.CellInfo cell in cells) { tableWidths.ProcessCell(cell); } }
public TableRenderer CreateTable() { var table = new TableRenderer(); table.SetHeaders(Globalization.UIGlobalization.Id, Globalization.UIGlobalization.Name, Globalization.UIGlobalization.Energy, Globalization.UIGlobalization.Protein, Globalization.UIGlobalization.Fat, Globalization.UIGlobalization.Carbohydrates); return(table); }
public virtual void TestIsOriginalNonSplitRenderer() { Table table = new Table(1); table.AddCell(new Cell()); table.AddCell(new Cell()); table.AddCell(new Cell()); TableRenderer original = (TableRenderer)table.CreateRendererSubTree(); TableRenderer[] children = original.Split(1); TableRenderer[] grandChildren = children[1].Split(1); NUnit.Framework.Assert.IsFalse(grandChildren[0].isOriginalNonSplitRenderer); }
/// <summary>Creates a renderer subtree with root in the current table element.</summary> /// <remarks> /// Creates a renderer subtree with root in the current table element. /// Compared to /// <see cref="GetRenderer()"/> /// , the renderer returned by this method should contain all the child /// renderers for children of the current element. /// </remarks> /// <returns> /// a /// <see cref="iText.Layout.Renderer.TableRenderer"/> /// subtree for this element /// </returns> public override IRenderer CreateRendererSubTree() { TableRenderer rendererRoot = (TableRenderer)GetRenderer(); foreach (IElement child in childElements) { bool childShouldBeAdded = isComplete || CellBelongsToAnyRowGroup((Cell)child, lastAddedRowGroups); if (childShouldBeAdded) { rendererRoot.AddChild(child.CreateRendererSubTree()); } } return(rendererRoot); }
public TableHeaderEventHandler(Document doc) { this.doc = doc; InitTable(); TableRenderer renderer = (TableRenderer)table.CreateRendererSubTree(); renderer.SetParent(new DocumentRenderer(doc)); // Simulate the positioning of the renderer to find out how much space the header table will occupy. LayoutResult result = renderer.Layout(new LayoutContext(new LayoutArea(0, PageSize.A4))); tableHeight = result.GetOccupiedArea().GetBBox().GetHeight(); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { Columns[0].ResetWidth(); Columns[1].ResetWidth(); TableRenderer table = new TableRenderer(Columns, Out); foreach(KeyValuePair<string, string> alias in Application.Commands.Aliases) { ColumnValue[] row = new ColumnValue[2]; row[0] = new ColumnValue(alias.Key); row[1] = new ColumnValue(alias.Value); table.AddRow(row); } table.CloseTable(); return CommandResultCode.Success; }
public virtual void TableRendererAddByIDTest() { DocumentRenderer documentRenderer = new DocumentRenderer(null); TableRenderer tableRenderer = new TableRenderer(new Table(5)); tableRenderer.SetParent(documentRenderer); String id = "id5"; tableRenderer.SetProperty(Property.ID, id); LayoutContext layoutContext = new LayoutContext(new LayoutArea(4, new Rectangle(50, 50))); tableRenderer.Layout(layoutContext); documentRenderer.GetTargetCounterHandler().PrepareHandlerToRelayout(); NUnit.Framework.Assert.AreEqual((int?)4, TargetCounterHandler.GetPageByID(tableRenderer, id)); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { Columns[0].ResetWidth(); Columns[1].ResetWidth(); TableRenderer table = new TableRenderer(Columns, Out); foreach (KeyValuePair <string, string> alias in Application.Commands.Aliases) { ColumnValue[] row = new ColumnValue[2]; row[0] = new ColumnValue(alias.Key); row[1] = new ColumnValue(alias.Value); table.AddRow(row); } table.CloseTable(); return(CommandResultCode.Success); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { IInformationProvider provider = Application as IInformationProvider; if (provider == null) { Error.WriteLine("The current context does not support information."); return(CommandResultCode.ExecutionFailed); } if (!args.MoveNext()) { return(CommandResultCode.SyntaxError); } string infoName = args.Current; if (!provider.IsInfoSupported(infoName)) { Error.WriteLine("Information " + infoName + " is not supported by the current context."); return(CommandResultCode.ExecutionFailed); } ColumnDesign[] columns = provider.GetColumns(infoName); for (int i = 0; i < columns.Length; i++) { columns[i].ResetWidth(); } TableRenderer renderer = new TableRenderer(columns, Out); // TODO: make it configurable ... renderer.EnableHeader = true; renderer.EnableFooter = true; IList <ColumnValue[]> values = provider.GetValues(infoName); for (int i = 0; i < values.Count; i++) { ColumnValue[] rowValues = values[i]; renderer.AddRow(rowValues); } renderer.Flush(); renderer.CloseTable(); return(CommandResultCode.Success); }
private TableRenderer CreateTableRendererWithDiffColspan(int maxWidth) { Table table = CreateTableWithDiffColspan(maxWidth); TableRenderer tableRenderer = new TableRenderer(table); CellRenderer[] row1 = new CellRenderer[] { new CellRenderer(table.GetCell(0, 0)), null, null }; CellRenderer[] row2 = new CellRenderer[] { null, new CellRenderer(table.GetCell(1, 1)), new CellRenderer(table .GetCell(1, 2)) }; CellRenderer[] row3 = new CellRenderer[] { new CellRenderer(table.GetCell(1, 0)), new CellRenderer(table.GetCell (2, 1)), new CellRenderer(table.GetCell(2, 2)) }; tableRenderer.rows[0] = row1; tableRenderer.rows[1] = row2; tableRenderer.rows[2] = row3; tableRenderer.bordersHandler = new SeparatedTableBorders(tableRenderer.rows, table.GetNumberOfColumns(), tableRenderer .GetBorders()); return(tableRenderer); }
public virtual void TestProcessCellsWithPercentWidth02() { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(new MemoryStream())); Document doc = new Document(pdfDoc); Table table = new Table(UnitValue.CreatePercentArray(new float[] { 2, 1, 1 })); table.SetWidth(UnitValue.CreatePercentValue(80)); table.SetHorizontalAlignment(HorizontalAlignment.CENTER); Cell c1 = new Cell(1, 3); c1.SetProperty(Property.WIDTH, UnitValue.CreatePercentValue(90)); c1.Add(new Paragraph("Cell with colspan 3")); table.AddCell(c1); Cell c2 = new Cell(2, 1); c2.Add(new Paragraph("Cell with rowspan 2")); c2.SetProperty(Property.WIDTH, UnitValue.CreatePercentValue(50)); table.AddCell(c2); table.AddCell(new Cell().Add(new Paragraph("row 1; cell 1")).SetMinWidth(200)); table.AddCell(new Cell().Add(new Paragraph("row 1; cell 2")).SetMaxWidth(50)); table.AddCell("row 2; cell 1"); table.AddCell("row 2; cell 2"); TableRenderer tableRenderer = new TableRenderer(table); CellRenderer[] row1 = new CellRenderer[] { new CellRenderer(table.GetCell(0, 0)), null, null }; CellRenderer[] row2 = new CellRenderer[] { null, new CellRenderer(table.GetCell(1, 1)), new CellRenderer(table .GetCell(1, 2)) }; CellRenderer[] row3 = new CellRenderer[] { new CellRenderer(table.GetCell(1, 0)), new CellRenderer(table.GetCell (2, 1)), new CellRenderer(table.GetCell(2, 2)) }; tableRenderer.rows[0] = row1; tableRenderer.rows[1] = row2; tableRenderer.rows[2] = row3; table.SetBorder(new SolidBorder(ColorConstants.GREEN, 5)); tableRenderer.bordersHandler = new SeparatedTableBorders(tableRenderer.rows, table.GetNumberOfColumns(), tableRenderer .GetBorders()); TableWidths tableWidths = new TableWidths(tableRenderer, 150, true, 15, 15); IList <TableWidths.CellInfo> cells = tableWidths.AutoLayoutCustom(); foreach (TableWidths.CellInfo cell in cells) { tableWidths.ProcessCell(cell); } tableWidths.Recalculate(200); doc.Add(table); doc.Close(); }
private void ShowFree(NetworkContext context) { // Refresh context.Network.Refresh(); MachineProfile[] machines = context.Network.GetAllMachineProfiles(); if (machines.Length == 0) { Out.WriteLine("No machines in the network."); } else { ColumnDesign[] columns = new ColumnDesign[4]; columns[0] = new ColumnDesign("Machine"); columns[1] = new ColumnDesign("Used Memory"); columns[2] = new ColumnDesign("Used Disk"); columns[3] = new ColumnDesign("Notes"); TableRenderer table = new TableRenderer(columns, Out); foreach (var machine in machines) { ColumnValue[] row = new ColumnValue[4]; if (machine.IsError) { row[3] = new ColumnValue(" ERROR: " + machine.ErrorMessage); } else { row[0] = new ColumnValue(machine.ServiceAddress.ToString()); row[1] = new ColumnValue(MemoryReport(machine.MemoryUsed, machine.MemoryTotal)); row[2] = new ColumnValue(MemoryReport(machine.DiskUsed, machine.DiskTotal)); if (machine.DiskUsed > ((double)machine.DiskTotal * 0.85d)) { row[3] = new ColumnValue(" WARNING: Node is close to full - used storage within 85% of total"); } } table.AddRow(row); } table.CloseTable(); } }
internal static void AdjustFloatedTableLayoutBox(TableRenderer tableRenderer, Rectangle layoutBox, float tableWidth , IList <Rectangle> floatRendererAreas, FloatPropertyValue?floatPropertyValue) { tableRenderer.SetProperty(Property.HORIZONTAL_ALIGNMENT, null); UnitValue[] margins = tableRenderer.GetMargins(); if (!margins[1].IsPointValue()) { ILog logger = LogManager.GetLogger(typeof(iText.Layout.Renderer.FloatingHelper)); logger.Error(MessageFormatUtil.Format(iText.IO.LogMessageConstant.PROPERTY_IN_PERCENTS_NOT_SUPPORTED, Property .MARGIN_RIGHT)); } if (!margins[3].IsPointValue()) { ILog logger = LogManager.GetLogger(typeof(iText.Layout.Renderer.FloatingHelper)); logger.Error(MessageFormatUtil.Format(iText.IO.LogMessageConstant.PROPERTY_IN_PERCENTS_NOT_SUPPORTED, Property .MARGIN_LEFT)); } AdjustBlockAreaAccordingToFloatRenderers(floatRendererAreas, layoutBox, tableWidth + margins[1].GetValue() + margins[3].GetValue(), FloatPropertyValue.LEFT.Equals(floatPropertyValue)); }
public async Task Table_Rendering_Does_Not_Crash() { var result = await _fixture.Table.GetAsync(_fixture.Request); var renderer = new TableRenderer(); var table = renderer.Render(_fixture.Table, result); var orderedEntities = _fixture.DataSource.Get().OrderBy(x => x.Id).ToArray(); Assert.Equal(orderedEntities.Length, table.Rows.Length); for (int i = 0; i < table.Rows.Length; i++) { Assert.Equal(table.DataTable.Columns.Length, table.Rows[i].Columns.Length); Assert.Equal(orderedEntities[i].Id, (int)table.Rows[i]["Id"].Value); Assert.Equal(orderedEntities[i].Name, (string)table.Rows[i]["Name"].Value); for (int j = 0; j < table.Columns.Length; j++) { Assert.Equal(table.DataTable.Columns.Single(x => x.Target == j).Name, table.Rows[i][j].Column.Name); Assert.Equal(table.DataTable.Columns[j].Name, table.Rows[i][j].Column.Name); } } }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { ISettingsHandler handler = Application as ISettingsHandler; if (handler == null) { Error.WriteLine("The application doesn't support settings."); return(CommandResultCode.ExecutionFailed); } if (args.MoveNext()) { return(CommandResultCode.SyntaxError); } VarColumns[0].ResetWidth(); VarColumns[1].ResetWidth(); TableRenderer table = new TableRenderer(VarColumns, Out); table.EnableHeader = true; table.EnableFooter = true; foreach (KeyValuePair <string, string> setting in handler.Settings) { if (setting.Key == ApplicationSettings.SpecialLastCommand) { continue; } ColumnValue[] row = new ColumnValue[4]; row[0] = new ColumnValue(setting.Key); row[1] = new ColumnValue(setting.Value); table.AddRow(row); } table.CloseTable(); Error.WriteLine(); return(CommandResultCode.Success); }
public void Execute(int maxDegreeOfParallelism) { var semaphore = new SemaphoreSlim(maxDegreeOfParallelism); var tableRenderer = new TableRenderer(_table, Output.Fancy); Parallel.ForEach(_parameters, (parameter, state, index) => { try { semaphore.Wait(); var progress = new CustomProgress <TReport>((report) => _progressHandler(report, _table.GetRow((int)index))); _executor(parameter, progress); } finally { semaphore.Release(); } }); tableRenderer.Dispose(); }
/// <inheritdoc/> protected override IEnumerable <Segment> Render(RenderContext context, int maxWidth) { if (context is null) { throw new ArgumentNullException(nameof(context)); } var measurer = new TableMeasurer(this, context); // Calculate the column and table width var totalCellWidth = measurer.CalculateTotalCellWidth(maxWidth); var columnWidths = measurer.CalculateColumnWidths(totalCellWidth); var tableWidth = columnWidths.Sum() + measurer.GetNonColumnWidth(); // Get the rows to render var rows = GetRenderableRows(); // Render the table return(TableRenderer.Render( new TableRendererContext(this, context, rows, tableWidth, maxWidth), columnWidths)); }
public TableDto Execute(GetQueryResultsQuery dataQuery) { if (dataQuery == null) { throw new ArgumentNullException(nameof(dataQuery)); } KeyValuePair <string, string>[] parameters = null; if (dataQuery.Parameters != null) { parameters = dataQuery.Parameters .Select(_ => new KeyValuePair <string, string>(_.Key, _.Value)) .ToArray(); } var queryResult = _queryExecutor.Execute(dataQuery.QueryId, dataQuery.UserId, parameters); var result = new TableRenderer().Render(queryResult); return(result); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { PropertyRegistry properties = Properties; if (properties == null) { Application.Error.WriteLine("the current context does not support properties."); return(CommandResultCode.ExecutionFailed); } if (args.MoveNext()) { string name = args.Current; PropertyHolder holder = properties.GetProperty(name); if (holder == null) { return(CommandResultCode.ExecutionFailed); } PrintDescription(name, holder, Application.Error); return(CommandResultCode.Success); } ProperiesColumns[0].ResetWidth(); ProperiesColumns[1].ResetWidth(); TableRenderer table = new TableRenderer(ProperiesColumns, Application.Out); foreach (KeyValuePair <string, PropertyHolder> entry in properties) { ColumnValue[] row = new ColumnValue[3]; PropertyHolder holder = entry.Value; row[0] = new ColumnValue(entry.Key); row[1] = new ColumnValue(holder.Value); row[2] = new ColumnValue(holder.ShortDescription); table.AddRow(row); } table.CloseTable(); return(CommandResultCode.Success); }
public TableDto Execute(GetProjectTasksQuery dataQuery) { if (dataQuery == null) { throw new ArgumentNullException(nameof(dataQuery)); } if (!_userAuthorityValidator.HasUserAuthorities( dataQuery.UserId, new[] { Authorities.UI.Project.Tasks.View }, dataQuery.ProjectId)) { throw new UnauthorizedAccessException(); } var user = _userProvider.Get(dataQuery.UserId); var role = _userRoleProvider.GetUserPreferedRoleForProject(user, dataQuery.ProjectId); if (role == null) { throw new UnauthorizedAccessException(); } var request = _queryExecutor.Execute( role.TasksQueryId, dataQuery.UserId, new KeyValuePair <string, string>( Variables.ProjectId, dataQuery.ProjectId.ToString())); var result = new TableRenderer().Render(request); return(result); }
public TableRendererTest() { ITableNodeParser nodeParser = Substitute.For <ITableNodeParser>(); _tableState = new TableState { Filter = new Dictionary <string, string>(), Page = 1, PageSize = 3, SortProp = "SortProp", AscSort = true }; _tableConfig = Substitute.For <ITableConfig <TableEntity> >(); _tableConfig.Columns.Returns(new Dictionary <string, ColumnConfig>()); _tableConfig.Paging.Returns(new PagingConfig()); _tableConfig.Footer.Returns(new FooterConfig()); _tableConfig.Sorting.Returns(new SortingConfig()); _tableConfig.Update.Returns(new UpdateConfig { Url = "Url", BusyIndicatorId = "BusyId", Start = "start", Success = "success", Error = "error", }); _tableConfig.Paging.Returns(new PagingConfig()); nodeParser.Parse(Arg.Do <IEnumerable <TableNode> >(n => _nodes = n)).Returns(new HtmlString("Content")); _renderer = new TableRenderer <TableEntity>(_tableState, nodeParser); }
public override CommandResultCode Execute(IExecutionContext context, CommandArguments args) { IInformationProvider provider = Application as IInformationProvider; if (provider == null) { Error.WriteLine("The current context does not support information."); return CommandResultCode.ExecutionFailed; } if (!args.MoveNext()) return CommandResultCode.SyntaxError; string infoName = args.Current; if (!provider.IsInfoSupported(infoName)) { Error.WriteLine("Information " + infoName + " is not supported by the current context."); return CommandResultCode.ExecutionFailed; } ColumnDesign[] columns = provider.GetColumns(infoName); for (int i = 0; i < columns.Length; i++) columns[i].ResetWidth(); TableRenderer renderer = new TableRenderer(columns, Out); // TODO: make it configurable ... renderer.EnableHeader = true; renderer.EnableFooter = true; IList<ColumnValue[]> values = provider.GetValues(infoName); for (int i = 0; i < values.Count; i++) { ColumnValue[] rowValues = values[i]; renderer.AddRow(rowValues); } renderer.Flush(); renderer.CloseTable(); return CommandResultCode.Success; }
public virtual void HeaderFooterTableTest() { String outFileName = destinationFolder + "headerFooterTableTest.pdf"; String cmpFileName = sourceFolder + "cmp_headerFooterTableTest.pdf"; Document doc = new Document(new PdfDocument(new PdfWriter(outFileName))); Cell bigCell = new Cell().Add(new Paragraph("veryveryveryvery big cell")).SetBorder(new SolidBorder(ColorConstants .RED, 40)).SetBorderBottom(Border.NO_BORDER).SetBorderTop(Border.NO_BORDER).SetPadding(0); Cell mediumCell = new Cell().Add(new Paragraph("mediumsize cell")).SetBorder(new SolidBorder(ColorConstants .GREEN, 30)).SetBorderBottom(Border.NO_BORDER).SetBorderTop(Border.NO_BORDER).SetPadding(0); Cell cell = new Cell().Add(new Paragraph("cell")).SetBorder(new SolidBorder(ColorConstants.BLUE, 10)).SetBorderBottom (Border.NO_BORDER).SetBorderTop(Border.NO_BORDER).SetPadding(0); Table table = new Table(UnitValue.CreatePercentArray(3)).UseAllAvailableWidth().SetBorder(new SolidBorder( ColorConstants.BLACK, 20)).AddCell(mediumCell.Clone(true)).AddCell(mediumCell.Clone(true)).AddCell(mediumCell .Clone(true)).AddFooterCell(cell.Clone(true)).AddFooterCell(cell.Clone(true)).AddFooterCell(bigCell.Clone (true)).AddHeaderCell(bigCell.Clone(true)).AddHeaderCell(cell.Clone(true)).AddHeaderCell(cell.Clone(true )); TableRenderer renderer = (TableRenderer)table.CreateRendererSubTree().SetParent(doc.GetRenderer()); MinMaxWidth minMaxWidth = renderer.GetMinMaxWidth(); Table minTable = new Table(new float[] { -1, -1, -1 }).SetWidth(UnitValue.CreatePointValue(1)).SetBorder(new SolidBorder(ColorConstants.BLACK, 20)).SetMarginTop(20).AddCell(mediumCell.Clone(true)).AddCell(mediumCell .Clone(true)).AddCell(mediumCell.Clone(true)).AddFooterCell(cell.Clone(true)).AddFooterCell(cell.Clone (true)).AddFooterCell(bigCell.Clone(true)).AddHeaderCell(bigCell.Clone(true)).AddHeaderCell(cell.Clone (true)).AddHeaderCell(cell.Clone(true)); Table maxTable = new Table(new float[] { -1, -1, -1 }).SetBorder(new SolidBorder(ColorConstants.BLACK, 20) ).SetMarginTop(20).AddCell(mediumCell.Clone(true)).AddCell(mediumCell.Clone(true)).AddCell(mediumCell. Clone(true)).AddFooterCell(cell.Clone(true)).AddFooterCell(cell.Clone(true)).AddFooterCell(bigCell.Clone (true)).AddHeaderCell(bigCell.Clone(true)).AddHeaderCell(cell.Clone(true)).AddHeaderCell(cell.Clone(true )); doc.Add(table); doc.Add(minTable); doc.Add(maxTable); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder , "diff")); }