Skip to content

Commit ce9a972

Browse files
Evgeniy PrudnikoviText-CI
authored andcommitted
Consider the margins of this document while obtaining list item's effective area
DEVSIX-6371 Autoported commit. Original commit hash: [afca8dfd6]
1 parent 1f71b95 commit ce9a972

12 files changed

+153
-5
lines changed

itext.tests/itext.layout.tests/itext/layout/CanvasTest.cs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ source product.
5454
using iText.Kernel.Pdf.Xobject;
5555
using iText.Kernel.Utils;
5656
using iText.Layout.Element;
57+
using iText.Layout.Properties;
5758
using iText.Layout.Testutil;
5859
using iText.Test;
5960
using iText.Test.Attributes;
@@ -112,6 +113,57 @@ public virtual void CanvasWithPageLinkTest() {
112113
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, DESTINATION_FOLDER));
113114
}
114115

116+
[NUnit.Framework.Test]
117+
public virtual void ListItemWithoutMarginsInCanvasTest() {
118+
String testName = "listItemWithoutMarginsInCanvasTest";
119+
String @out = DESTINATION_FOLDER + testName + ".pdf";
120+
String cmp = SOURCE_FOLDER + "cmp_" + testName + ".pdf";
121+
PdfDocument pdf = new PdfDocument(new PdfWriter(@out));
122+
PdfPage page = pdf.AddNewPage();
123+
Rectangle pageSize = page.GetPageSize();
124+
iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, pageSize);
125+
List list = new List();
126+
list.SetListSymbol(ListNumberingType.DECIMAL);
127+
list.Add(new ListItem("list item 1"));
128+
list.Add(new ListItem("list item 2"));
129+
canvas.Add(list);
130+
canvas.Close();
131+
pdf.Close();
132+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, DESTINATION_FOLDER));
133+
}
134+
135+
[NUnit.Framework.Test]
136+
public virtual void NotApplyingMarginsInCanvasTest() {
137+
String testName = "notApplyingMarginsInCanvasTest";
138+
String @out = DESTINATION_FOLDER + testName + ".pdf";
139+
String cmp = SOURCE_FOLDER + "cmp_" + testName + ".pdf";
140+
PdfDocument pdf = new PdfDocument(new PdfWriter(@out));
141+
PdfPage page = pdf.AddNewPage();
142+
Rectangle pageSize = page.GetPageSize();
143+
iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, pageSize);
144+
canvas.SetProperty(Property.MARGIN_LEFT, 36);
145+
canvas.Add(new Paragraph("Hello"));
146+
canvas.Close();
147+
pdf.Close();
148+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, DESTINATION_FOLDER));
149+
}
150+
151+
[NUnit.Framework.Test]
152+
public virtual void NullableMarginsInCanvasRendererTest() {
153+
String testName = "nullableMarginsInCanvasRenderer";
154+
String @out = DESTINATION_FOLDER + testName + ".pdf";
155+
String cmp = SOURCE_FOLDER + "cmp_" + testName + ".pdf";
156+
PdfDocument pdf = new PdfDocument(new PdfWriter(@out));
157+
PdfPage page = pdf.AddNewPage();
158+
Rectangle pageSize = page.GetPageSize();
159+
iText.Layout.Canvas canvas = new iText.Layout.Canvas(page, pageSize);
160+
canvas.SetProperty(Property.MARGIN_LEFT, null);
161+
canvas.Add(new Paragraph("Hello"));
162+
canvas.Close();
163+
pdf.Close();
164+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(@out, cmp, DESTINATION_FOLDER));
165+
}
166+
115167
[NUnit.Framework.Test]
116168
public virtual void CanvasWithPageEnableTaggingTest01() {
117169
String testName = "canvasWithPageEnableTaggingTest01";

itext.tests/itext.layout.tests/itext/layout/ListTest.cs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,81 @@ public virtual void ListItemTest02() {
355355
, "diff"));
356356
}
357357

358+
[NUnit.Framework.Test]
359+
public virtual void ListItemWithoutMarginsTest() {
360+
String outFileName = destinationFolder + "listItemWithoutMarginsTest.pdf";
361+
String cmpFileName = sourceFolder + "cmp_listItemWithoutMarginsTest.pdf";
362+
PdfDocument pdf = new PdfDocument(new PdfWriter(outFileName));
363+
Document document = new Document(pdf);
364+
document.SetMargins(0, 0, 0, 0);
365+
List list = new List();
366+
list.SetListSymbol(ListNumberingType.DECIMAL);
367+
list.Add(new ListItem("list item 1"));
368+
list.Add(new ListItem("list item 2"));
369+
document.Add(list);
370+
document.Close();
371+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
372+
, "diff"));
373+
}
374+
375+
[NUnit.Framework.Test]
376+
public virtual void ListItemBigMarginsTest() {
377+
String outFileName = destinationFolder + "listItemBigMarginsTest.pdf";
378+
String cmpFileName = sourceFolder + "cmp_listItemBigMarginsTest.pdf";
379+
PdfDocument pdf = new PdfDocument(new PdfWriter(outFileName));
380+
Document document = new Document(pdf);
381+
int margin = 100;
382+
document.SetMargins(margin, margin, margin, margin);
383+
List list = new List();
384+
list.SetListSymbol(ListNumberingType.DECIMAL);
385+
list.Add(new ListItem("list item 1"));
386+
list.Add(new ListItem("list item 2"));
387+
document.Add(list);
388+
document.Close();
389+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
390+
, "diff"));
391+
}
392+
393+
[NUnit.Framework.Test]
394+
public virtual void MaxMarginWidthWhereTheBulletIsNotDrawnTest() {
395+
String outFileName = destinationFolder + "maxMarginWidthWhereTheBulletIsNotDrawn.pdf";
396+
String cmpFileName = sourceFolder + "cmp_maxMarginWidthWhereTheBulletIsNotDrawn.pdf";
397+
PdfDocument pdf = new PdfDocument(new PdfWriter(outFileName));
398+
Document document = new Document(pdf);
399+
int margin = 50;
400+
document.SetMargins(margin, margin, margin, margin);
401+
List list = new List();
402+
list.SetListSymbol(ListNumberingType.DECIMAL);
403+
list.Add(new ListItem("list item 1"));
404+
list.Add(new ListItem("list item 2"));
405+
float? marginLeft = document.GetDefaultProperty<float>(Property.MARGIN_LEFT);
406+
list.SetFixedPosition((float)marginLeft, 780, 200);
407+
document.Add(list);
408+
document.Close();
409+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
410+
, "diff"));
411+
}
412+
413+
[NUnit.Framework.Test]
414+
public virtual void InitialMarginWidthWhereTheBulletIsDrawnTest() {
415+
String outFileName = destinationFolder + "initialMarginWidthWhereTheBulletIsDrawn.pdf";
416+
String cmpFileName = sourceFolder + "cmp_initialMarginWidthWhereTheBulletIsDrawn.pdf";
417+
PdfDocument pdf = new PdfDocument(new PdfWriter(outFileName));
418+
Document document = new Document(pdf);
419+
int margin = 49;
420+
document.SetMargins(margin, margin, margin, margin);
421+
List list = new List();
422+
list.SetListSymbol(ListNumberingType.DECIMAL);
423+
list.Add(new ListItem("list item 1"));
424+
list.Add(new ListItem("list item 2"));
425+
float? marginLeft = document.GetDefaultProperty<float>(Property.MARGIN_LEFT);
426+
list.SetFixedPosition((float)marginLeft, 780, 200);
427+
document.Add(list);
428+
document.Close();
429+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFileName, cmpFileName, destinationFolder
430+
, "diff"));
431+
}
432+
358433
[LogMessage(iText.IO.Logs.IoLogMessageConstant.CLIP_ELEMENT, Count = 4)]
359434
[NUnit.Framework.Test]
360435
public virtual void ListWithSetHeightProperties01() {

itext.tests/itext.layout.tests/itext/layout/renderer/AbstractRendererUnitTest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ source product.
4040
For more information, please contact iText Software Corp. at this
4141
4242
*/
43+
using System;
4344
using System.Collections.Generic;
4445
using System.IO;
4546
using iText.Commons.Utils;
@@ -851,5 +852,15 @@ public virtual void NullChildTest() {
851852
);
852853
}
853854
}
855+
856+
[NUnit.Framework.Test]
857+
public virtual void ObtainingMarginsErrorTest() {
858+
//TODO DEVSIX-6372 Obtaining DocumentRenderer's margins results in a ClassCastException
859+
PdfDocument doc = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
860+
Document document = new Document(doc);
861+
RootRenderer renderer = document.GetRenderer();
862+
Rectangle rect = new Rectangle(0, 0);
863+
NUnit.Framework.Assert.Catch(typeof(InvalidCastException), () => renderer.ApplyMargins(rect, false));
864+
}
854865
}
855866
}

0 commit comments

Comments
 (0)