2021-09-14 00:16:16 +02:00
using System ;
using System.Linq ;
2021-09-14 02:02:45 +02:00
using System.Text ;
2021-08-25 03:40:16 +02:00
using NUnit.Framework ;
2021-08-09 22:35:39 +02:00
using QuestPDF.Examples.Engine ;
using QuestPDF.Fluent ;
using QuestPDF.Helpers ;
using QuestPDF.Infrastructure ;
namespace QuestPDF.Examples
{
public class TextExamples
{
2021-10-01 01:44:42 +02:00
[Test]
public void SimpleTextBlock ()
{
RenderingTest
. Create ()
. PageSize ( 500 , 300 )
2021-10-23 02:59:47 +02:00
2021-10-01 01:44:42 +02:00
. ProduceImages ()
. ShowResults ()
. Render ( container =>
{
container
. Padding ( 5 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-10-01 01:44:42 +02:00
. Border ( 1 )
. Padding ( 10 )
. Text ( text =>
{
text . DefaultTextStyle ( TextStyle . Default . Size ( 20 ));
text . Span ( "This is a normal text, followed by an " );
2022-03-11 13:23:36 +01:00
text . Span ( "underlined red text." ). FontSize ( 20 ). FontColor ( Colors . Red . Medium ). Underline ();
2021-10-01 01:44:42 +02:00
});
});
}
[Test]
public void ParagraphSpacing ()
{
RenderingTest
. Create ()
. PageSize ( 500 , 300 )
. ProduceImages ()
. ShowResults ()
. Render ( container =>
{
container
. Padding ( 5 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-10-01 01:44:42 +02:00
. Border ( 1 )
. Padding ( 10 )
. Text ( text =>
{
text . ParagraphSpacing ( 10 );
foreach ( var i in Enumerable . Range ( 1 , 3 ))
{
2022-03-08 17:27:30 +01:00
text . Span ( $"Paragraph {i}: " ). SemiBold ();
2021-10-01 01:44:42 +02:00
text . Line ( Placeholders . Paragraph ());
}
});
});
}
[Test]
public void CustomElement ()
{
RenderingTest
. Create ()
. PageSize ( 500 , 200 )
. ProduceImages ()
. ShowResults ()
. Render ( container =>
{
container
. Padding ( 5 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-10-01 01:44:42 +02:00
. Border ( 1 )
. Padding ( 10 )
. Text ( text =>
{
text . DefaultTextStyle ( TextStyle . Default . Size ( 20 ));
text . Span ( "This is a random image aligned to the baseline: " );
text . Element ()
. PaddingBottom (- 6 )
. Height ( 24 )
. Width ( 48 )
. Image ( Placeholders . Image );
text . Span ( "." );
});
});
}
2021-08-09 22:35:39 +02:00
[Test]
public void TextElements ()
{
RenderingTest
. Create ()
2021-08-25 03:40:16 +02:00
. PageSize ( PageSizes . A4 )
2021-08-09 22:35:39 +02:00
. ProducePdf ()
2021-08-27 01:55:20 +02:00
. ShowResults ()
2021-08-09 22:35:39 +02:00
. Render ( container =>
{
2021-08-25 03:40:16 +02:00
container
. Padding ( 20 )
2021-09-12 21:01:10 +02:00
. Padding ( 10 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-08-25 03:40:16 +02:00
. Border ( 1 )
. Padding ( 5 )
2021-09-12 21:01:10 +02:00
. Padding ( 10 )
2021-08-25 03:40:16 +02:00
. Text ( text =>
{
2021-09-12 21:01:10 +02:00
text . DefaultTextStyle ( TextStyle . Default );
2021-09-12 21:37:46 +02:00
text . AlignLeft ();
2021-09-12 21:01:10 +02:00
text . ParagraphSpacing ( 10 );
2021-09-14 02:02:45 +02:00
text . Line ( Placeholders . LoremIpsum ());
2021-09-12 21:01:10 +02:00
2022-03-08 17:27:30 +01:00
text . Span ( $"This is target text that should show up. {DateTime.UtcNow:T} > This is a short sentence that will be wrapped into second line hopefully, right? <" ). Underline ();
2021-09-14 02:02:45 +02:00
});
});
}
[Test]
2022-01-09 00:11:34 +01:00
public void Textcolumn ()
2021-09-14 02:02:45 +02:00
{
RenderingTest
. Create ()
. PageSize ( PageSizes . A4 )
. ProducePdf ()
. ShowResults ()
. Render ( container =>
{
container
. Padding ( 20 )
. Padding ( 10 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-09-14 02:02:45 +02:00
. Border ( 1 )
. Padding ( 5 )
. Padding ( 10 )
. Text ( text =>
{
text . DefaultTextStyle ( TextStyle . Default );
text . AlignLeft ();
text . ParagraphSpacing ( 10 );
foreach ( var i in Enumerable . Range ( 1 , 100 ))
text . Line ( $"{i}: {Placeholders.Paragraph()}" );
2021-09-12 21:01:10 +02:00
});
});
}
2021-09-12 21:37:46 +02:00
[Test]
public void SpaceIssue ()
{
RenderingTest
. Create ()
. PageSize ( PageSizes . A4 )
. ProducePdf ()
. ShowResults ()
. Render ( container =>
{
container
. Padding ( 20 )
. Padding ( 10 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-09-12 21:37:46 +02:00
. Border ( 1 )
. Padding ( 5 )
. Padding ( 10 )
. Text ( text =>
{
2022-03-08 17:27:30 +01:00
text . DefaultTextStyle ( x => x . Bold ());
2021-09-12 21:37:46 +02:00
text . DefaultTextStyle ( TextStyle . Default );
text . AlignLeft ();
text . ParagraphSpacing ( 10 );
text . Span ( Placeholders . LoremIpsum ());
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
2021-09-12 21:37:46 +02:00
text . Span ( "This text is a normal text, " );
2022-03-08 17:27:30 +01:00
text . Span ( "this is a bold text, " ). Bold ();
2022-03-11 13:23:36 +01:00
text . Span ( "this is a red and underlined text, " ). FontColor ( Colors . Red . Medium ). Underline ();
text . Span ( "and this is slightly bigger text." ). FontSize ( 16 );
2021-09-12 21:37:46 +02:00
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
2021-09-12 21:37:46 +02:00
text . Span ( "The new text element also supports injecting custom content between words: " );
text . Element (). PaddingBottom (- 10 ). Height ( 16 ). Width ( 32 ). Image ( Placeholders . Image );
text . Span ( "." );
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
2021-09-12 21:37:46 +02:00
text . Span ( "This is page number " );
text . CurrentPageNumber ();
text . Span ( " out of " );
text . TotalPages ();
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
2021-09-12 21:37:46 +02:00
text . ExternalLocation ( "Please visit QuestPDF website" , "https://www.questpdf.com" );
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
text . Span ( Placeholders . Paragraphs ());
2021-09-12 21:37:46 +02:00
2021-09-13 01:06:06 +02:00
text . EmptyLine ();
2022-03-08 17:27:30 +01:00
text . Span ( Placeholders . Paragraphs ()). Italic ();
2021-09-13 01:06:06 +02:00
text . Line ( "This is target text that does not show up. " + Placeholders . Paragraph ());
2021-09-12 21:37:46 +02:00
});
});
}
2021-09-13 01:06:06 +02:00
2021-09-12 21:01:10 +02:00
[Test]
2021-09-13 01:06:06 +02:00
public void HugeList ()
2021-09-12 21:01:10 +02:00
{
RenderingTest
. Create ()
2021-09-13 01:06:06 +02:00
. PageSize ( PageSizes . A4 )
. ProducePdf ()
2021-09-12 21:01:10 +02:00
. ShowResults ()
. Render ( container =>
{
container
2021-09-13 01:06:06 +02:00
. Padding ( 20 )
2021-09-12 21:01:10 +02:00
. Padding ( 10 )
2022-01-06 00:22:07 +01:00
. MinimalBox ()
2021-09-12 21:01:10 +02:00
. Border ( 1 )
2021-09-13 01:06:06 +02:00
. Padding ( 5 )
2021-09-12 21:01:10 +02:00
. Padding ( 10 )
. Text ( text =>
{
text . DefaultTextStyle ( TextStyle . Default );
text . AlignLeft ();
text . ParagraphSpacing ( 10 );
2021-09-13 01:06:06 +02:00
text . Span ( "This text is a normal text, " );
2022-03-08 17:27:30 +01:00
text . Span ( "this is a bold text, " ). Bold ();
2022-03-11 13:23:36 +01:00
text . Span ( "this is a red and underlined text, " ). FontColor ( Colors . Red . Medium ). Underline ();
text . Span ( "and this is slightly bigger text." ). FontSize ( 16 );
2021-09-13 01:06:06 +02:00
text . Span ( "The new text element also supports injecting custom content between words: " );
text . Element (). PaddingBottom (- 10 ). Height ( 16 ). Width ( 32 ). Image ( Placeholders . Image );
text . Span ( "." );
text . EmptyLine ();
foreach ( var i in Enumerable . Range ( 1 , 100 ))
{
text . Line ( $"{i}: {Placeholders.Paragraph()}" );
text . ExternalLocation ( "Please visit QuestPDF website" , "https://www.questpdf.com" );
text . Span ( "This is page number " );
text . CurrentPageNumber ();
text . Span ( " out of " );
text . TotalPages ();
2021-09-30 22:48:39 +02:00
text . EmptyLine ();
2021-09-13 01:06:06 +02:00
}
2021-08-25 03:40:16 +02:00
});
2021-08-09 22:35:39 +02:00
});
}
}
}