Fixed Image API for Dynamic components

This commit is contained in:
Marcin Ziąbek
2023-05-12 01:20:50 +02:00
parent 6b1de07caa
commit 2b701e11d4
2 changed files with 23 additions and 7 deletions
+12 -6
View File
@@ -101,7 +101,7 @@ namespace QuestPDF.Drawing
ApplyInheritedAndGlobalTexStyle(content, TextStyle.Default);
ApplyContentDirection(content, settings.ContentDirection);
ApplyDefaultImageConfiguration(content, settings);
ApplyDefaultImageConfiguration(content, settings.ImageRasterDpi, settings.ImageCompressionQuality);
var debuggingState = Settings.EnableDebugging ? ApplyDebugging(content) : null;
@@ -228,20 +228,26 @@ namespace QuestPDF.Drawing
ApplyContentDirection(child, direction);
}
internal static void ApplyDefaultImageConfiguration(this Element? content, DocumentSettings settings)
internal static void ApplyDefaultImageConfiguration(this Element? content, int imageRasterDpi, ImageCompressionQuality imageCompressionQuality)
{
content.VisitChildren(x =>
{
if (x is QuestPDF.Elements.Image image)
{
image.TargetDpi ??= settings.ImageRasterDpi;
image.CompressionQuality ??= settings.ImageCompressionQuality;
image.TargetDpi ??= imageRasterDpi;
image.CompressionQuality ??= imageCompressionQuality;
}
if (x is QuestPDF.Elements.DynamicImage dynamicImage)
{
dynamicImage.TargetDpi ??= settings.ImageRasterDpi;
dynamicImage.CompressionQuality ??= settings.ImageCompressionQuality;
dynamicImage.TargetDpi ??= imageRasterDpi;
dynamicImage.CompressionQuality ??= imageCompressionQuality;
}
if (x is DynamicHost dynamicHost)
{
dynamicHost.ImageTargetDpi ??= imageRasterDpi;
dynamicHost.ImageCompressionQuality ??= imageCompressionQuality;
}
});
}
+11 -1
View File
@@ -14,6 +14,9 @@ namespace QuestPDF.Elements
internal TextStyle TextStyle { get; set; } = TextStyle.Default;
public ContentDirection ContentDirection { get; set; }
internal int? ImageTargetDpi { get; set; }
internal ImageCompressionQuality? ImageCompressionQuality { get; set; }
public DynamicHost(DynamicComponentProxy child)
{
Child = child;
@@ -58,6 +61,9 @@ namespace QuestPDF.Elements
TextStyle = TextStyle,
ContentDirection = ContentDirection,
ImageTargetDpi = ImageTargetDpi.Value,
ImageCompressionQuality = ImageCompressionQuality.Value,
PageNumber = PageContext.CurrentPage,
TotalPages = PageContext.GetLocation(Infrastructure.PageContext.DocumentLocation).PageEnd,
AvailableSize = availableSize
@@ -79,7 +85,10 @@ namespace QuestPDF.Elements
internal TextStyle TextStyle { get; set; }
internal ContentDirection ContentDirection { get; set; }
internal int ImageTargetDpi { get; set; }
internal ImageCompressionQuality ImageCompressionQuality { get; set; }
public int PageNumber { get; internal set; }
public int TotalPages { get; internal set; }
public Size AvailableSize { get; internal set; }
@@ -91,6 +100,7 @@ namespace QuestPDF.Elements
container.ApplyInheritedAndGlobalTexStyle(TextStyle);
container.ApplyContentDirection(ContentDirection);
container.ApplyDefaultImageConfiguration(ImageTargetDpi, ImageCompressionQuality);
container.InjectDependencies(PageContext, Canvas);
container.VisitChildren(x => (x as IStateResettable)?.ResetState());