Skip to content

Commit f5d6ae8

Browse files
Artyom YanchevskyiText-CI
authored andcommitted
Add support to utf-8 image format in svg
DEVSIX-3847 Autoported commit. Original commit hash: [ad6b1d569]
1 parent 1d24502 commit f5d6ae8

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

itext/itext.styledxmlparser/itext/styledxmlparser/resolver/resource/ResourceResolver.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ namespace iText.StyledXmlParser.Resolver.Resource {
5353
public class ResourceResolver {
5454
// TODO handle <base href=".."> tag?
5555
/// <summary>Identifier string used when loading in base64 images.</summary>
56+
public const String BASE64_IDENTIFIER = "base64";
57+
58+
/// <summary>Identifier string used when loading in base64 images.</summary>
59+
[System.ObsoleteAttribute(@"This variable will be replaced by BASE64_IDENTIFIER in 7.2 release")]
5660
public const String BASE64IDENTIFIER = "base64";
5761

5862
/// <summary>Identifier string used to detect that the source is under data URI scheme.</summary>
@@ -333,7 +337,8 @@ public virtual bool IsImageTypeSupportedByImageDataFactory(String src) {
333337
protected internal virtual PdfXObject TryResolveBase64ImageSource(String src) {
334338
try {
335339
String fixedSrc = iText.IO.Util.StringUtil.ReplaceAll(src, "\\s", "");
336-
fixedSrc = fixedSrc.Substring(fixedSrc.IndexOf(BASE64IDENTIFIER, StringComparison.Ordinal) + 7);
340+
fixedSrc = fixedSrc.Substring(fixedSrc.IndexOf(BASE64_IDENTIFIER, StringComparison.Ordinal) + BASE64_IDENTIFIER
341+
.Length + 1);
337342
PdfXObject imageXObject = imageCache.GetImage(fixedSrc);
338343
if (imageXObject == null) {
339344
imageXObject = new PdfImageXObject(ImageDataFactory.Create(Convert.FromBase64String(fixedSrc)));
@@ -381,7 +386,8 @@ private byte[] RetrieveBytesFromBase64Src(String src) {
381386
if (IsContains64Mark(src)) {
382387
try {
383388
String fixedSrc = iText.IO.Util.StringUtil.ReplaceAll(src, "\\s", "");
384-
fixedSrc = fixedSrc.Substring(fixedSrc.IndexOf(BASE64IDENTIFIER, StringComparison.Ordinal) + 7);
389+
fixedSrc = fixedSrc.Substring(fixedSrc.IndexOf(BASE64_IDENTIFIER, StringComparison.Ordinal) + BASE64_IDENTIFIER
390+
.Length + 1);
385391
return Convert.FromBase64String(fixedSrc);
386392
}
387393
catch (Exception) {
@@ -398,7 +404,7 @@ private byte[] RetrieveBytesFromBase64Src(String src) {
398404
/// <param name="src">string to test</param>
399405
/// <returns>true if string contains base64 mark</returns>
400406
private bool IsContains64Mark(String src) {
401-
return src.Contains(BASE64IDENTIFIER);
407+
return src.Contains(BASE64_IDENTIFIER);
402408
}
403409
}
404410
}

port-hash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f7c3c1127baf162a443098508d9384d1bbd15cd2
1+
ad6b1d5698a8b81532d2aa2211019b9fff5cc603

0 commit comments

Comments
 (0)