Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 27a808b389 | |||
| e23a7bd821 | |||
| 40603ada12 | |||
| b5d8fc403f | |||
| 84ed879026 | |||
| 3bcb0ed947 | |||
| 498a86359a | |||
| 4d1db6b76e |
@@ -56,7 +56,7 @@ Choosing a project dependency could be difficult. We need to ensure stability an
|
||||
|
||||
⭐ Please give this repository a star. It takes seconds and help thousands of developers! ⭐
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/9263853/232912983-b20e441e-bd47-41df-afa4-f02481252d26.png" width="800" />
|
||||
<img src="https://user-images.githubusercontent.com/9263853/236193691-efb9cff8-e919-4826-9720-dcfb492980ae.png" width="800" />
|
||||
|
||||
|
||||
## Please share with the community
|
||||
|
||||
@@ -316,6 +316,58 @@ namespace QuestPDF.Examples
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Bug_RowSpanWorksIncorrectly()
|
||||
{
|
||||
// https://github.com/QuestPDF/QuestPDF/issues/552
|
||||
|
||||
RenderingTest
|
||||
.Create()
|
||||
.ProduceImages()
|
||||
.PageSize(PageSizes.A5.Landscape())
|
||||
.ShowResults()
|
||||
.Render(container =>
|
||||
{
|
||||
container.Padding(20).Table(table =>
|
||||
{
|
||||
table.ColumnsDefinition(columns =>
|
||||
{
|
||||
columns.RelativeColumn(1);
|
||||
columns.RelativeColumn(2);
|
||||
columns.RelativeColumn(2);
|
||||
columns.RelativeColumn(2);
|
||||
});
|
||||
|
||||
foreach (var i in Enumerable.Range(6, 9))
|
||||
{
|
||||
table.Cell().Element(CellStyleMainTable).Text($"{i:00}:00");
|
||||
|
||||
foreach (var j in Enumerable.Range(1, 3))
|
||||
table.Cell().Element(CellStyleMainTable).Text("");
|
||||
}
|
||||
|
||||
static IContainer CellStyleMainTable(IContainer container)
|
||||
{
|
||||
return container
|
||||
.Border(0.5f).BorderColor(Colors.Blue.Lighten4)
|
||||
.Background(Colors.Blue.Lighten5)
|
||||
.PaddingVertical(5);
|
||||
}
|
||||
|
||||
table.Cell().Row(1).RowSpan(3).Column(2).Element(BlockAccepted).Text("3 rows");
|
||||
table.Cell().Row(1).RowSpan(6).Column(3).Element(BlockAccepted).Text("6 rows");
|
||||
table.Cell().Row(3).RowSpan(5).Column(4).Element(BlockAccepted).Text("5 rows");
|
||||
|
||||
static IContainer BlockAccepted(IContainer container)
|
||||
{
|
||||
return container
|
||||
.Border(1.5f).BorderColor(Colors.Green.Lighten2)
|
||||
.Background(Colors.Green.Lighten4);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TableHeader()
|
||||
{
|
||||
|
||||
@@ -4,11 +4,10 @@
|
||||
<Authors>MarcinZiabek</Authors>
|
||||
<Company>CodeFlint</Company>
|
||||
<PackageId>QuestPDF.Previewer</PackageId>
|
||||
<Version>2022.12.0</Version>
|
||||
<Version>2023.4.0</Version>
|
||||
<PackAsTool>true</PackAsTool>
|
||||
<ToolCommandName>questpdf-previewer</ToolCommandName>
|
||||
<PackageDescription>QuestPDF is an open-source, modern and battle-tested library that can help you with generating PDF documents by offering friendly, discoverable and predictable C# fluent API.</PackageDescription>
|
||||
<PackageReleaseNotes>Initial release.</PackageReleaseNotes>
|
||||
<LangVersion>10</LangVersion>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<PackageIcon>Logo.png</PackageIcon>
|
||||
@@ -18,10 +17,8 @@
|
||||
<RepositoryUrl>https://github.com/QuestPDF/library.git</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<Copyright>Marcin Ziąbek, QuestPDF contributors</Copyright>
|
||||
<PackageTags>pdf report file export generate generation tool create creation render portable document format quest html library converter open source free standard core previewer</PackageTags>
|
||||
<PackageTags>previewer pdf report file export generate generation tool create creation render portable document format quest html library converter open source free standard core</PackageTags>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<OutputType>exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
|
||||
@@ -75,8 +75,8 @@ namespace QuestPDF.Drawing
|
||||
$"The library does not require any license key. " +
|
||||
$"We trust our users, and therefore the process is simple. " +
|
||||
$"To disable license validation and turn off this exception, please configure an eligible license using the QuestPDF.Settings.License API, for example: {newParagraph}" +
|
||||
$"\"QuestPDF.Settings.License = LicenseType.Community;\". {newParagraph}" +
|
||||
$"Learn more on: https://www.questpdf.com/license-configuration.html";
|
||||
$"\"QuestPDF.Settings.License = LicenseType.Community;\" {newParagraph}" +
|
||||
$"Learn more on: https://www.questpdf.com/license-configuration.html {newParagraph}";
|
||||
|
||||
throw new Exception(exceptionMessage)
|
||||
{
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace QuestPDF.Elements.Table
|
||||
UpdateColumnsWidth(availableSpace.Width);
|
||||
var renderingCommands = PlanLayout(availableSpace);
|
||||
|
||||
foreach (var command in renderingCommands)
|
||||
foreach (var command in renderingCommands.OrderBy(x => x.Cell.ZIndex))
|
||||
{
|
||||
if (command.Measurement.Type == SpacePlanType.FullRender)
|
||||
command.Cell.IsRendered = true;
|
||||
|
||||
@@ -8,6 +8,8 @@ namespace QuestPDF.Elements.Table
|
||||
public int Column { get; set; } = 0;
|
||||
public int ColumnSpan { get; set; } = 1;
|
||||
|
||||
public int ZIndex { get; set; }
|
||||
|
||||
public bool IsRendered { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -16,9 +16,13 @@ namespace QuestPDF.Elements.Table
|
||||
{
|
||||
var cellsWindow = new List<TableCell>();
|
||||
(int x, int y) currentLocation = (1, 1);
|
||||
var zIndex = 0;
|
||||
|
||||
foreach (var cell in cells)
|
||||
{
|
||||
cell.ZIndex = zIndex;
|
||||
zIndex++;
|
||||
|
||||
if (cellsWindow.Count > Math.Max(columnsCount, 16))
|
||||
{
|
||||
cellsWindow = cellsWindow
|
||||
|
||||
@@ -18,8 +18,8 @@ namespace QuestPDF.Previewer
|
||||
|
||||
public event Action? OnPreviewerStopped;
|
||||
|
||||
private const int RequiredPreviewerVersionMajor = 2022;
|
||||
private const int RequiredPreviewerVersionMinor = 12;
|
||||
private const int RequiredPreviewerVersionMajor = 2023;
|
||||
private const int RequiredPreviewerVersionMinor = 4;
|
||||
|
||||
public PreviewerService(int port)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<Authors>MarcinZiabek</Authors>
|
||||
<Company>CodeFlint</Company>
|
||||
<PackageId>QuestPDF</PackageId>
|
||||
<Version>2023.4.0</Version>
|
||||
<Version>2023.4.2</Version>
|
||||
<PackageDescription>QuestPDF is an open-source, modern and battle-tested library that can help you with generating PDF documents by offering friendly, discoverable and predictable C# fluent API. Easily generate PDF reports, invoices, exports, etc.</PackageDescription>
|
||||
<PackageReleaseNotes>$([System.IO.File]::ReadAllText("$(MSBuildProjectDirectory)/Resources/ReleaseNotes.txt"))</PackageReleaseNotes>
|
||||
<LangVersion>9</LangVersion>
|
||||
@@ -22,6 +22,7 @@
|
||||
<TargetFrameworks>net462;netstandard2.0;netcoreapp2.0;netcoreapp3.0;net6.0</TargetFrameworks>
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
## What license do you need?
|
||||
|
||||
If you are consuming the QuestPDF library as a Direct Package Dependency for usage in a Closed Source software in the capacity of a for-profit company/individual with more than 1M USD annual gross revenue, you must purchase the QuestPDF Professional or Enterprise License, depending on number of software developers.
|
||||
Suppose you are consuming the QuestPDF library as a Direct Package Dependency for usage in a Closed Source software in the capacity of a for-profit company/individual with more than 1M USD annual gross revenue. In that case, you must purchase the QuestPDF Professional or Enterprise License, depending on the number of software developers.
|
||||
|
||||
We love and highly appreciate the .NET Community and therefore the vast majority of users are welcome to use the library completely for free. If you do not meet the criteria described above, you are eligible to use the QuestPDF Community MIT License, without any limitations, even for commercial usage.
|
||||
We love and highly appreciate the .NET Community. Therefore, most users are welcome to use the library entirely for free. If you do not meet the criteria described above, you are eligible to use the QuestPDF Community MIT License, without any limitations, even for commercial usage.
|
||||
|
||||
If you still want to support library development, please consider purchasing the Professional License.
|
||||
|
||||
All details regarding the QuestPDF license can be found on the [official webpage](https://www.questpdf.com/pricing.html).
|
||||
Please find all details regarding the QuestPDF license on the [official webpage](https://www.questpdf.com/pricing.html).
|
||||
|
||||
Being a healthy and growing community is our primary goal that motivates us to pursue professionalism. Thank you!
|
||||
Being a healthy and growing community is the primary goal that motivates us to pursue professionalism. Thank you!
|
||||
|
||||
|
||||
## QuestPDF Community MIT License
|
||||
|
||||
@@ -1,27 +1,12 @@
|
||||
Version 2022.12.0:
|
||||
Feature: implemented LetterSpacing property for the Text element
|
||||
Improvement: the Text element API accepts now only string values, objects are not automatically converted anymore
|
||||
Fix: the Alignment element incorrectly limits size of its child when only one axis is set (horizontal or vertical)
|
||||
Maintenance: Updated SkiaSharp dependency to 2.88.3
|
||||
Version 2023.4.0
|
||||
|
||||
This release was possible thanks to enormous help of AntonyCorbett, thank you!
|
||||
This release does not contain any features or quality improvements.
|
||||
Its purpose is to mark the QuestPDF shift towards the dual-licensing model.
|
||||
Most users are not affected by this change.
|
||||
Please visit the https://www.questpdf.com/pricing.html webpage for more information.
|
||||
|
||||
Version 2022.12.1:
|
||||
Fixed: loading fonts from embedded resource via the FontManager.RegisterFontFromEmbeddedResource method
|
||||
Fixed: better layout calculation stability for the Column element
|
||||
Improvement: exposed missing API method for the Dynamic component, enabling applying more advanced optimizations
|
||||
Improvement: better API documentation for the Settings.DocumentLayoutExceptionThreshold property
|
||||
Version 2023.4.1:
|
||||
Added IntelliSense-powered documentation for certain API methods.
|
||||
|
||||
Version 2022.12.2:
|
||||
Performance improvements in various areas
|
||||
Text rendering stability improvements
|
||||
Fixed: the Settings.CheckIfAllTextGlyphsAreAvailable setting does not work correctly
|
||||
|
||||
Version 2022.12.3:
|
||||
Fix: inconsistent text height when using multiple lines with different TextStyles
|
||||
Improvement: added validation for color arguments
|
||||
Fix: the inlined element is shown only once in the header but should be repeated on each page
|
||||
|
||||
Version 2022.12.4:
|
||||
Fix: the TextStyle.Fallback property incorrectly inherits parent's and global properties
|
||||
Improvement: updated the CreateNotMatchingFontException message to mention that the glyph checking operation can be disabled with the Settings.CheckIfAllTextGlyphsAreAvailable setting
|
||||
Version 2023.4.2:
|
||||
Fix: fixed the rendering order of table cells in certain scenarios
|
||||
|
||||
Reference in New Issue
Block a user