From 933ca13043377babb19c49ccdfa251b87ef751e4 Mon Sep 17 00:00:00 2001 From: Glenn Volckaert Date: Tue, 3 Dec 2024 07:42:36 +0000 Subject: [PATCH 1/3] Add support for embedded sharpen config DEVSIX-8601 Autoported commit. Original commit hash: [6f036e867] Manual files: barcodes/pom.xml barcodes/src/sharpenconfig/java/com/itextpdf/barcodes/SharpenMapping.java barcodes/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration bouncy-castle-adapter/pom.xml bouncy-castle-adapter/src/sharpenconfig/java/com/itextpdf/bouncycastle/SharpenMapping.java bouncy-castle-adapter/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration bouncy-castle-connector/pom.xml bouncy-castle-connector/src/sharpenconfig/java/com/itextpdf/bouncycastleconnector/SharpenMapping.java bouncy-castle-connector/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration bouncy-castle-fips-adapter/pom.xml bouncy-castle-fips-adapter/src/sharpenconfig/java/com/itextpdf/bouncycastlefips/SharpenMapping.java bouncy-castle-fips-adapter/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration commons/pom.xml commons/src/sharpenconfig/java/com/itextpdf/commons/SharpenMapping.java commons/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration font-asian/pom.xml forms/pom.xml forms/src/sharpenconfig/java/com/itextpdf/forms/SharpenMapping.java forms/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration hyph/pom.xml io/pom.xml io/src/main/java/com/itextpdf/io/util/UrlUtil.java io/src/sharpenconfig/java/com/itextpdf/io/SharpenMapping.java io/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration kernel/pom.xml kernel/src/sharpenconfig/java/com/itextpdf/kernel/SharpenMapping.java kernel/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration layout/pom.xml layout/src/sharpenconfig/java/com/itextpdf/layout/SharpenMapping.java layout/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration native-image-test/noSharpen.txt noSharpen.txt pdfa/pom.xml pdfa/src/sharpenconfig/java/com/itextpdf/pdfa/SharpenMapping.java pdfa/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration pdftest/pom.xml pdfua/pom.xml pdfua/src/sharpenconfig/java/com/itextpdf/pdfua/SharpenMapping.java pdfua/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration pom.xml sign/pom.xml sign/src/sharpenconfig/java/com/itextpdf/signatures/SharpenMapping.java sign/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration styled-xml-parser/pom.xml styled-xml-parser/src/sharpenconfig/java/com/itextpdf/styledxmlparser/SharpenMapping.java styled-xml-parser/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration svg/pom.xml svg/src/sharpenconfig/java/com/itextpdf/svg/SharpenMapping.java svg/src/sharpenconfig/resources/META-INF/services/sharpen.config.MappingConfiguration svg/test.txt --- itext/itext.io/itext/io/util/StreamUtil.cs | 1 + port-hash | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/itext/itext.io/itext/io/util/StreamUtil.cs b/itext/itext.io/itext/io/util/StreamUtil.cs index 853205e348..e9122549b4 100644 --- a/itext/itext.io/itext/io/util/StreamUtil.cs +++ b/itext/itext.io/itext/io/util/StreamUtil.cs @@ -276,6 +276,7 @@ public static void CopyBytes(IRandomAccessSource source, long start, long length /// /// bytes from an input stream. /// + /// the stream to read /// the buffer into which the data is read. /// an int specifying the offset into the data. /// an int specifying the number of bytes to read. diff --git a/port-hash b/port-hash index c7675e359f..93e248115c 100644 --- a/port-hash +++ b/port-hash @@ -1 +1 @@ -7eb454dea697b1725bd58d0a52f4462f78b24f7d +6f036e867670beb1fa69af450c1dae06ce7e0a6b From 9d2f4e00daf2acff98fea5e0e844cb46a00d032a Mon Sep 17 00:00:00 2001 From: iText Software Date: Tue, 3 Dec 2024 08:02:33 +0000 Subject: [PATCH 2/3] Update port-hash Add missing copyright headers Autoported commit. Original commit hash: [b5826c03f] Manual files: barcodes/src/sharpenconfig/java/com/itextpdf/barcodes/SharpenMapping.java bouncy-castle-adapter/src/sharpenconfig/java/com/itextpdf/bouncycastle/SharpenMapping.java bouncy-castle-connector/src/sharpenconfig/java/com/itextpdf/bouncycastleconnector/SharpenMapping.java bouncy-castle-fips-adapter/src/sharpenconfig/java/com/itextpdf/bouncycastlefips/SharpenMapping.java commons/src/sharpenconfig/java/com/itextpdf/commons/SharpenMapping.java forms/src/sharpenconfig/java/com/itextpdf/forms/SharpenMapping.java io/src/sharpenconfig/java/com/itextpdf/io/SharpenMapping.java kernel/src/sharpenconfig/java/com/itextpdf/kernel/SharpenMapping.java layout/src/sharpenconfig/java/com/itextpdf/layout/SharpenMapping.java pdfa/src/sharpenconfig/java/com/itextpdf/pdfa/SharpenMapping.java pdfua/src/sharpenconfig/java/com/itextpdf/pdfua/SharpenMapping.java sign/src/sharpenconfig/java/com/itextpdf/signatures/SharpenMapping.java styled-xml-parser/src/sharpenconfig/java/com/itextpdf/styledxmlparser/SharpenMapping.java svg/src/sharpenconfig/java/com/itextpdf/svg/SharpenMapping.java --- port-hash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/port-hash b/port-hash index 93e248115c..a990138df6 100644 --- a/port-hash +++ b/port-hash @@ -1 +1 @@ -6f036e867670beb1fa69af450c1dae06ce7e0a6b +b5826c03f51a9f2c9d18bda58b687ec2f97e32b2 From 369f95fca7e0e0b834efd4ee49a392eea3e23637 Mon Sep 17 00:00:00 2001 From: Andrei Stryhelski Date: Wed, 4 Dec 2024 12:18:09 +0000 Subject: [PATCH 3/3] Add tests for DEVSIX-2255, DEVSIX-2507, DEVSIX-4477, DEVSIX-4586, DEVSIX-2270, DEVSIX-2284, DEVSIX-4853, DEVSIX-8710 DEVSIX-8743 Autoported commit. Original commit hash: [89443ed10] --- .../DefaultStyleInheritanceIntegrationTest.cs | 67 +++++++++++ .../itext/svg/renderers/StrokeTest.cs | 6 + .../itext/svg/renderers/impl/LinkTest.cs | 88 ++++++++++++++ .../impl/PathParsingIntegrationTest.cs | 9 +- .../impl/TSpanNodeRendererIntegrationTest.cs | 47 ++++++++ .../TextSvgBranchRendererIntegrationTest.cs | 107 ++++++++++++++++++ .../cmp_fillOpacityInheritance.pdf | Bin 0 -> 1623 bytes .../cmp_fillRuleInheritance.pdf | Bin 0 -> 1423 bytes .../cmp_nestedInheritance.pdf | Bin 0 -> 2342 bytes .../cmp_opacityInheritance.pdf | Bin 0 -> 1855 bytes .../cmp_strokeDasharrayInheritance.pdf | Bin 0 -> 1388 bytes .../cmp_strokeDashoffsetInheritance.pdf | Bin 0 -> 1471 bytes .../cmp_strokeInheritance.pdf | Bin 0 -> 1563 bytes .../cmp_strokeLinecapInheritance.pdf | Bin 0 -> 1372 bytes .../cmp_strokeLinejoinInheritance.pdf | Bin 0 -> 1404 bytes .../cmp_strokeOpacityInheritance.pdf | Bin 0 -> 1644 bytes .../cmp_strokeWidthInheritance.pdf | Bin 0 -> 1563 bytes .../cmp_textPropertiesInheritance.pdf | Bin 0 -> 1662 bytes .../cmp_usePropertiesInheritance.pdf | Bin 0 -> 2553 bytes .../fillOpacityInheritance.svg | 7 ++ .../fillRuleInheritance.svg | 6 + .../DefaultInheritance/nestedInheritance.svg | 23 ++++ .../DefaultInheritance/opacityInheritance.svg | 7 ++ .../strokeDasharrayInheritance.svg | 6 + .../strokeDashoffsetInheritance.svg | 10 ++ .../DefaultInheritance/strokeInheritance.svg | 7 ++ .../strokeLinecapInheritance.svg | 6 + .../strokeLinejoinInheritance.svg | 6 + .../strokeOpacityInheritance.svg | 7 ++ .../strokeWidthInheritance.svg | 7 ++ .../textPropertiesInheritance.svg | 8 ++ .../usePropertiesInheritance.svg | 16 +++ .../renderers/impl/LinkTest/circleLink.svg | 6 + .../impl/LinkTest/cmp_circleLink.pdf | Bin 0 -> 1114 bytes .../LinkTest/cmp_combinedElementsLink.pdf | Bin 0 -> 1121 bytes .../renderers/impl/LinkTest/cmp_groupLink.pdf | Bin 0 -> 1115 bytes .../renderers/impl/LinkTest/cmp_lineLink.pdf | Bin 0 -> 1115 bytes .../impl/LinkTest/cmp_nestedSvgLink.pdf | Bin 0 -> 1117 bytes .../renderers/impl/LinkTest/cmp_pathLink.pdf | Bin 0 -> 1114 bytes .../impl/LinkTest/cmp_polygonLink.pdf | Bin 0 -> 1115 bytes .../renderers/impl/LinkTest/cmp_textLink.pdf | Bin 0 -> 1114 bytes .../impl/LinkTest/combinedElementsLink.svg | 9 ++ .../svg/renderers/impl/LinkTest/groupLink.svg | 10 ++ .../svg/renderers/impl/LinkTest/lineLink.svg | 6 + .../renderers/impl/LinkTest/nestedSvgLink.svg | 7 ++ .../svg/renderers/impl/LinkTest/pathLink.svg | 6 + .../renderers/impl/LinkTest/polygonLink.svg | 6 + .../svg/renderers/impl/LinkTest/textLink.svg | 6 + .../cmp_tspanInTextPath.pdf | Bin 0 -> 1906 bytes .../tspanInTextPath.svg | 33 ++++++ .../StrokeTest/cmp_strokeDashArrayLines.pdf | Bin 0 -> 1707 bytes .../impl/StrokeTest/strokeDashArrayLines.svg | 26 +++++ .../cmp_tspanBaselineShift.pdf | Bin 0 -> 1621 bytes .../cmp_tspanCombinedAttributes.pdf | Bin 0 -> 1565 bytes .../cmp_tspanDxDyAttributes.pdf | Bin 0 -> 1563 bytes .../cmp_tspanLengthAdjust.pdf | Bin 0 -> 1775 bytes .../cmp_tspanRotate.pdf | Bin 0 -> 1498 bytes .../cmp_tspanShrunkTextLengthTest.pdf | Bin 0 -> 1664 bytes .../cmp_tspanStretchedTextLengthTest.pdf | Bin 0 -> 1664 bytes .../cmp_tspanTextLength.pdf | Bin 0 -> 1505 bytes .../tspanBaselineShift.svg | 7 ++ .../tspanCombinedAttributes.svg | 6 + .../tspanDxDyAttributes.svg | 6 + .../tspanLengthAdjust.svg | 16 +++ .../tspanRotate.svg | 5 + .../tspanShrunkTextLengthTest.svg | 11 ++ .../tspanStretchedTextLengthTest.svg | 11 ++ .../tspanTextLength.svg | 5 + .../cmp_textBaselineShift.pdf | Bin 0 -> 1632 bytes .../cmp_textCombinedAttributes.pdf | Bin 0 -> 1577 bytes .../cmp_textComplexStrokeDasharray.pdf | Bin 0 -> 1631 bytes .../cmp_textDxDyAttributes.pdf | Bin 0 -> 1570 bytes .../cmp_textLengthAdjust.pdf | Bin 0 -> 1775 bytes .../cmp_textRotate.pdf | Bin 0 -> 1502 bytes .../cmp_textShrunkTextLength.pdf | Bin 0 -> 1664 bytes .../cmp_textStretchedTextLength.pdf | Bin 0 -> 1664 bytes .../cmp_textStrokeDasharray.pdf | Bin 0 -> 1601 bytes .../cmp_textTextDecorationLineThrough.pdf | Bin 0 -> 1516 bytes .../cmp_textTextDecorationOverline.pdf | Bin 0 -> 1511 bytes .../cmp_textTextDecorationUnderline.pdf | Bin 0 -> 1512 bytes .../cmp_textTextLength.pdf | Bin 0 -> 1505 bytes .../cmp_textWhiteSpaceNoWrap.pdf | Bin 0 -> 1542 bytes .../cmp_textWhiteSpaceNormal.pdf | Bin 0 -> 1541 bytes .../cmp_textWhiteSpacePre.pdf | Bin 0 -> 1540 bytes .../cmp_textWhiteSpacePreLine.pdf | Bin 0 -> 1566 bytes .../cmp_textWhiteSpacePreWrap.pdf | Bin 0 -> 1553 bytes .../textBaselineShift.svg | 7 ++ .../textCombinedAttributes.svg | 8 ++ .../textComplexStrokeDasharray.svg | 9 ++ .../textDxDyAttributes.svg | 4 + .../textLengthAdjust.svg | 16 +++ .../textRotate.svg | 3 + .../textShrunkTextLength.svg | 11 ++ .../textStretchedTextLength.svg | 11 ++ .../textStrokeDasharray.svg | 9 ++ .../textTextDecorationLineThrough.svg | 3 + .../textTextDecorationOverline.svg | 3 + .../textTextDecorationUnderline.svg | 3 + .../textTextLength.svg | 5 + .../textWhiteSpaceNoWrap.svg | 5 + .../textWhiteSpaceNormal.svg | 5 + .../textWhiteSpacePre.svg | 5 + .../textWhiteSpacePreLine.svg | 7 ++ .../textWhiteSpacePreWrap.svg | 5 + port-hash | 2 +- 105 files changed, 741 insertions(+), 2 deletions(-) create mode 100644 itext.tests/itext.svg.tests/itext/svg/renderers/impl/LinkTest.cs create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_fillOpacityInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_fillRuleInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_nestedInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_opacityInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeDasharrayInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeDashoffsetInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeLinecapInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeLinejoinInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeOpacityInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeWidthInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_textPropertiesInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_usePropertiesInheritance.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillOpacityInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillRuleInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/nestedInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/opacityInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDasharrayInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDashoffsetInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinecapInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinejoinInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeOpacityInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeWidthInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/textPropertiesInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/usePropertiesInheritance.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/circleLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_circleLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_combinedElementsLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_groupLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_lineLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_nestedSvgLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_pathLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_polygonLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_textLink.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/combinedElementsLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/groupLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/lineLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/nestedSvgLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/pathLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/polygonLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/textLink.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/PathParsingIntegrationTest/cmp_tspanInTextPath.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/PathParsingIntegrationTest/tspanInTextPath.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/cmp_strokeDashArrayLines.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/strokeDashArrayLines.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanBaselineShift.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanCombinedAttributes.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanDxDyAttributes.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanLengthAdjust.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanRotate.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanShrunkTextLengthTest.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanStretchedTextLengthTest.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanTextLength.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanBaselineShift.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanCombinedAttributes.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanDxDyAttributes.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanLengthAdjust.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanRotate.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanShrunkTextLengthTest.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanStretchedTextLengthTest.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanTextLength.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textBaselineShift.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textCombinedAttributes.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textComplexStrokeDasharray.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textDxDyAttributes.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textLengthAdjust.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textRotate.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textShrunkTextLength.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStretchedTextLength.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStrokeDasharray.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationLineThrough.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationOverline.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationUnderline.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextLength.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpaceNoWrap.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpaceNormal.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpacePre.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpacePreLine.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpacePreWrap.pdf create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textBaselineShift.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textCombinedAttributes.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textComplexStrokeDasharray.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textDxDyAttributes.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textLengthAdjust.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textRotate.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textShrunkTextLength.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStretchedTextLength.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStrokeDasharray.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationLineThrough.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationOverline.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationUnderline.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextLength.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNoWrap.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNormal.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePre.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreLine.svg create mode 100644 itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreWrap.svg diff --git a/itext.tests/itext.svg.tests/itext/svg/css/DefaultStyleInheritanceIntegrationTest.cs b/itext.tests/itext.svg.tests/itext/svg/css/DefaultStyleInheritanceIntegrationTest.cs index 5bbe09da98..b706d95c36 100644 --- a/itext.tests/itext.svg.tests/itext/svg/css/DefaultStyleInheritanceIntegrationTest.cs +++ b/itext.tests/itext.svg.tests/itext/svg/css/DefaultStyleInheritanceIntegrationTest.cs @@ -60,5 +60,72 @@ public virtual void GroupInheritanceTest() { public virtual void UseInheritanceNotOverridingTest() { ConvertAndCompare(sourceFolder, destinationFolder, "useInheritanceNotOverriding"); } + + [NUnit.Framework.Test] + public virtual void UsePropertiesInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "usePropertiesInheritance"); + } + + [NUnit.Framework.Test] + public virtual void FillOpacityInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "fillOpacityInheritance"); + } + + [NUnit.Framework.Test] + public virtual void FillRuleInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "fillRuleInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeWidthInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeWidthInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeOpacityInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeOpacityInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeLinecapInheritanceTest() { + //TODO DEVSIX-4857 support stroke-linecap attribute + ConvertAndCompare(sourceFolder, destinationFolder, "strokeLinecapInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeLinejoinInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeLinejoinInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeDasharrayInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeDasharrayInheritance"); + } + + [NUnit.Framework.Test] + public virtual void StrokeDashoffsetInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "strokeDashoffsetInheritance"); + } + + [NUnit.Framework.Test] + public virtual void OpacityInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "opacityInheritance"); + } + + [NUnit.Framework.Test] + public virtual void TextPropertiesInheritanceTest() { + //TODO DEVSIX-4114 support vertical text attribute + ConvertAndCompare(sourceFolder, destinationFolder, "textPropertiesInheritance"); + } + + [NUnit.Framework.Test] + public virtual void NestedInheritanceTest() { + ConvertAndCompare(sourceFolder, destinationFolder, "nestedInheritance"); + } } } diff --git a/itext.tests/itext.svg.tests/itext/svg/renderers/StrokeTest.cs b/itext.tests/itext.svg.tests/itext/svg/renderers/StrokeTest.cs index 1ae82e8c46..6cfaf2c708 100644 --- a/itext.tests/itext.svg.tests/itext/svg/renderers/StrokeTest.cs +++ b/itext.tests/itext.svg.tests/itext/svg/renderers/StrokeTest.cs @@ -91,5 +91,11 @@ public virtual void HeightWidthZeroTest() { //TODO DEVSIX-8760 : change cmp after fix ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "height-width-zero"); } + + [NUnit.Framework.Test] + public virtual void StrokeDashArrayLinesTest() { + //TODO: update cmp-file after DEVSIX-2258 + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "strokeDashArrayLines"); + } } } diff --git a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/LinkTest.cs b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/LinkTest.cs new file mode 100644 index 0000000000..1651a0f72f --- /dev/null +++ b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/LinkTest.cs @@ -0,0 +1,88 @@ +/* +This file is part of the iText (R) project. +Copyright (c) 1998-2024 Apryse Group NV +Authors: Apryse Software. + +This program is offered under a commercial and under the AGPL license. +For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below. + +AGPL licensing: +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ +using System; +using iText.Svg.Renderers; +using iText.Test; + +namespace iText.Svg.Renderers.Impl { + public class LinkTest : SvgIntegrationTest { + private static readonly String SOURCE_FOLDER = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext + .CurrentContext.TestDirectory) + "/resources/itext/svg/renderers/impl/LinkTest/"; + + private static readonly String DESTINATION_FOLDER = NUnit.Framework.TestContext.CurrentContext.TestDirectory + + "/test/itext/svg/renderers/impl/LinkTest/"; + + [NUnit.Framework.OneTimeSetUp] + public static void BeforeClass() { + ITextTest.CreateDestinationFolder(DESTINATION_FOLDER); + } + + [NUnit.Framework.Test] + public virtual void CircleLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "circleLink"); + } + + [NUnit.Framework.Test] + public virtual void TextLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "textLink"); + } + + [NUnit.Framework.Test] + public virtual void CombinedElementsLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "combinedElementsLink"); + } + + [NUnit.Framework.Test] + public virtual void PathLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "pathLink"); + } + + [NUnit.Framework.Test] + public virtual void LineLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "lineLink"); + } + + [NUnit.Framework.Test] + public virtual void PolygonLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "polygonLink"); + } + + [NUnit.Framework.Test] + public virtual void GroupLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "groupLink"); + } + + [NUnit.Framework.Test] + public virtual void NestedSvgLinkTest() { + //TODO: DEVSIX-8710 update cmp file after fix + ConvertAndCompare(SOURCE_FOLDER, DESTINATION_FOLDER, "nestedSvgLink"); + } + } +} diff --git a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/PathParsingIntegrationTest.cs b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/PathParsingIntegrationTest.cs index 6543b20523..b0003d7abf 100644 --- a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/PathParsingIntegrationTest.cs +++ b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/PathParsingIntegrationTest.cs @@ -110,7 +110,7 @@ public virtual void PrecedingSpacesTest() { [NUnit.Framework.Test] [LogMessage(SvgLogMessageConstant.UNMAPPED_TAG)] - public virtual void Text_path_Test() { + public virtual void TextPathTest() { //TODO: update cmp-file after DEVSIX-2255 ConvertAndCompare(sourceFolder, destinationFolder, "textpath"); } @@ -122,6 +122,13 @@ public virtual void TextPathExample() { ConvertAndCompare(sourceFolder, destinationFolder, "textPathExample"); } + [NUnit.Framework.Test] + [LogMessage(SvgLogMessageConstant.UNMAPPED_TAG)] + public virtual void TspanInTextPathTest() { + //TODO: update when DEVSIX-2255 implemented + ConvertAndCompare(sourceFolder, destinationFolder, "tspanInTextPath"); + } + [NUnit.Framework.Test] public virtual void PathH() { ConvertAndCompare(sourceFolder, destinationFolder, "pathH"); diff --git a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest.cs b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest.cs index bd31251618..d3cc289da8 100644 --- a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest.cs +++ b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest.cs @@ -168,6 +168,53 @@ public virtual void TspanNestedExample() { ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanNestedExample"); } + [NUnit.Framework.Test] + public virtual void TspanDxDyAttributesTest() { + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanDxDyAttributes"); + } + + [NUnit.Framework.Test] + public virtual void TspanBaselineShiftTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanBaselineShift"); + } + + [NUnit.Framework.Test] + public virtual void TspanRotateTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanRotate"); + } + + [NUnit.Framework.Test] + public virtual void TspanLengthAdjustTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanLengthAdjust"); + } + + [NUnit.Framework.Test] + public virtual void TspanTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanTextLength"); + } + + [NUnit.Framework.Test] + public virtual void TspanStretchedTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanStretchedTextLengthTest"); + } + + [NUnit.Framework.Test] + public virtual void TspanShrunkTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanShrunkTextLengthTest"); + } + + [NUnit.Framework.Test] + public virtual void TspanCombinedAttributesTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanCombinedAttributes"); + } + [NUnit.Framework.Test] public virtual void Text_decoration_Test() { //TODO: update cmp-file after DEVSIX-2270 fixed diff --git a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.cs b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.cs index f111086adc..5981632dbe 100644 --- a/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.cs +++ b/itext.tests/itext.svg.tests/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest.cs @@ -221,5 +221,112 @@ public virtual void TextFontSizeExUnitsTest() { public virtual void TspanWithOneAbsoluteCoordinateTest() { ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "tspanWithOneAbsoluteCoordinateTest"); } + + [NUnit.Framework.Test] + public virtual void TextDxDyAttributesTest() { + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textDxDyAttributes"); + } + + [NUnit.Framework.Test] + public virtual void TextBaselineShiftTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textBaselineShift"); + } + + [NUnit.Framework.Test] + public virtual void TextRotateTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textRotate"); + } + + [NUnit.Framework.Test] + public virtual void TextLengthAdjustTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textLengthAdjust"); + } + + [NUnit.Framework.Test] + public virtual void TextTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textTextLength"); + } + + [NUnit.Framework.Test] + public virtual void TextStretchedTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textStretchedTextLength"); + } + + [NUnit.Framework.Test] + public virtual void TextShrunkTextLengthTest() { + //TODO: DEVSIX-2507, DEVSIX-5477 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textShrunkTextLength"); + } + + [NUnit.Framework.Test] + public virtual void TextCombinedAttributesTest() { + //TODO: DEVSIX-2507 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textCombinedAttributes"); + } + + [NUnit.Framework.Test] + public virtual void TextStrokeDasharrayTest() { + //TODO: DEVSIX-8776 Support stroke dash pattern in layout + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textStrokeDasharray"); + } + + [NUnit.Framework.Test] + public virtual void TextComplexStrokeDasharrayTest() { + //TODO: DEVSIX-8776 Support stroke dash pattern in layout + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textComplexStrokeDasharray"); + } + + [NUnit.Framework.Test] + public virtual void TextTextDecorationUnderlineTest() { + //TODO: DEVSIX-2270, DEVSIX-4586 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textTextDecorationUnderline"); + } + + [NUnit.Framework.Test] + public virtual void TextTextDecorationLineThroughTest() { + //TODO: DEVSIX-2270, DEVSIX-4586 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textTextDecorationLineThrough"); + } + + [NUnit.Framework.Test] + public virtual void TextTextDecorationOverlineTest() { + //TODO: DEVSIX-2270, DEVSIX-4586 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textTextDecorationOverline"); + } + + [NUnit.Framework.Test] + public virtual void TextWhiteSpaceNormalTest() { + //TODO: DEVSIX-2284 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textWhiteSpaceNormal"); + } + + [NUnit.Framework.Test] + public virtual void TextWhiteSpacePreTest() { + //TODO: DEVSIX-2284 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textWhiteSpacePre"); + } + + [NUnit.Framework.Test] + public virtual void TextWhiteSpaceNoWrapTest() { + //TODO: DEVSIX-2284 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textWhiteSpaceNoWrap"); + } + + [NUnit.Framework.Test] + public virtual void TextWhiteSpacePreWrapTest() { + //TODO: DEVSIX-2284 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textWhiteSpacePreWrap"); + } + + [NUnit.Framework.Test] + public virtual void TextWhiteSpacePreLineTest() { + //TODO: DEVSIX-2284 update cmp file after fix + ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textWhiteSpacePreLine"); + } } } diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_fillOpacityInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_fillOpacityInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f6f291309621161b4047a2d4ad9a2c09ac6a680d GIT binary patch literal 1623 zcmc&!-A>yu6u$RUoSO>J)W&w=q?u49XemSEr)#4z3Ak_)rwdwRa9jj?quuOPcCk0u zUS!81&`~tDyE&Dc9G~Csd_JAYXxwGJh;)AZ{Pvv)prF%Bvc2scs%maO0^@^0ZHK&=Pl)L)&jN+$=1@r@c;Z3AL9pH`1 zRMmQEGF4;X4=3rR$}GOQXpuV~;PMhvE}nTw?yeNNnybOUrQ{M}XwlZ-4(c{UqdAmT ze$w-mvcFOuVv)Ag)ks>kIeN`04;ZIDi)qN&E9!4hy0PUQ>HKAdiP8BoQ)aVF)UEvr zLv0kqJ=UY$+40U~_U0sk^Ua<8$syb*Q)9sME%?GIrCk>icCO4_tzh5iA_|5U4d7jgVyPGOT!A7Vzi(M2MNM*+v4%{8Yv$|4q*t zS$yZteW|(!|EbBgJ=p!T?IEwu0<*TKH+}FXJ1PRJgO*e5-Hc=ZwrOe-veOzfc%zqS|d+k}ZUxM|}sYDC-m}%T829 zb3NG^yF23!Ub33$q8n9ezx#?)?lHzClZ<=8OX}`Xx_985>-1@ZzR~G2QD%QOQg_u? z=xC!LY_S$?4lj=S!#9^BxZXcH>7T)^G9@OwK7cQrQrfgB;b>v*O9dxJFBfp}{$N+D zg{r<-M=udO=DeMy<&{N#Fm|?3lsgxTUhQ(c!H#nQOwjS>g@y0@8-8hHuizgpk7%URsHJihf2)~73uGgG|Zc7SSuk%{BIZa9S z0^8a$3iKo>q_M-FAZYXO{DAj zETb${ew0x^a(xzZ-}5u(qX(5)5DH3NRMR+)c*a!7L&ba=&;)x>rkqED3rv>TKuIKM z`~O!kc20{-gPkG+XMj8h%kP0RoPAahU>`PCQ=n;wK=aQbK*}mI)#~wsFeHt}>&qVb E1)Ds1mH+?% literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_nestedInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_nestedInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..837b0bf9f69b31b302fa828b124620bd2e87336b GIT binary patch literal 2342 zcmc&#&2Hm15We#%=3;D&))q(M7auVF-s}gq;J$qU!{k> zLHi;d%0IH@Zni)V)j^_$!}(^u`ABwd#*-fF`=s;dU%&rBT%e%h2XcC9UCLrn{S1r` z24$tCSdmY}nyeU%75PAjEYgh`M`nrBEFGz$l0{X52{*H@WSWaJ^>Rz`*9~0=9DZ-z z2#r3#YnPcU)ss$SiNHTy#}6{8aAeQ|Ge5w`igdm@iW0p(N({A-gMmrOB*JjTrUo-n zZXjyUk*LH{EgEOLaUNljRj!J$sN~7`J5IU7IJH?wJ??!&?RS*E>snVTecRzitMn<6 z`XrC!OZ6L!l$H?oS)cai?}s<@@2?}cI~h)IF5y|~5&`eJ@GGa3_6#HpAN6Y~VXD>B zBfS5y+vMssxt@tqPLO3Q%2%@N&D2U1)_IYrG%ps`$GjL8Wxo5LKgE^d$xy)Rw`CSL zk^L`5zCgb6e`9gsD(n$d@w#FE7F1Tc>!9f3KhSeUcYhftqovMznXU7 zALM=hQcdR-3J%piEg3MA%nXMdm;p6I8~30Y;ubJnGy8&p(ZbA{a4@a=x3$*$Z%rg< zNj{PSD>Oz1dQlHB)|9Zm3!ic36FG~pV$8~gDBDnhOfk>yhd$Uo`b8_kA=2dJO5_C? z#iO_{<+EG@yX$tN2XY?aaq(dd)ORThP3j1@i;tzY;@iAW1Mv5v*MUFhcpeRPE|%Xy zUh8s)#oJgrB)S>35HacfikuK@VT|ur)L@n?v0O?G8PdOlv|EsCjUauzj}-6mhxHwz zahzwUwHakPb%{_B9_YSXSQdUA&wZxdu LT+->BUr)&2_g!sE literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_opacityInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_opacityInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fac15eec22b7ae883817566e1da95aa6d22a3097 GIT binary patch literal 1855 zcmc&!-EP}96u#$EoExJF23sU0O7ajGaO^lM);69ktOL?qP!jDasKu0`i*#?ao4rae z`UcyJ>>OE%8+-k^8)eYs;rZitKAzruI_rx;!g_!I^YIf?z`^FX?CdOfVd}O29fTZ> z8t;tWuy-t&Z3Ij$`-L%6mz@|_WD@O7C${#c_6?A`Mex#;l|Hxk*BrNMs348xO)%FE zbwIW%3)9%GD@=odf4jzBz?ICFi_PAz^&yJ~Rd{o!#ES zt6xv|xyJik&vj#Fh;oos8`Ja`cBAXyqAqM%)$8DORgdeYdfYF!xhI?m0@2O^8Sgz) z5jw~wc8gUJ!OvCMTvJUKH#>_K%e@KJr87BysEU*dgyJ_3+);7x<-(@qyDjWPdNb=b zyI36s9+^ia<5RbZ&L(5B3y#b`=jeZ{+&i;EphU>< zF?9oCr9uTOc#ugd6b+~!WlA6|4rEec%?@Nd!3S|DL#z*Fkv#UNV#MaaHc@z~r!pZp zwxmN@h{ZpYsiPP|3_r8=PFHV@qgMWW3fE_ePV?C0LJ1X#BrQtAF<4ZpywI^uRZ$3C zYHrdq^=in;+CK`9!@$o-iRAsg$v#Q zUWDT=U15Xm5=Tl;&hO{%oYTgj*Ke|xB8?wEzkMeHC|Lc0?C%FBrkGdnf$>hKtei=f z%0tGuVyZ2uct+bhlWr#5@sVc=}GN{!pi$L6~F z3SH|A#4XmM&C%JxVD$2Q3>UixM}rf%GOome7klu9Q%ak@Bph72o6^9Mv#U!ud$YI2 z>Zz(P*0n3-js>sstekk}htuGWigFv`*{eeiH{5Y9fC)O?bXdsX-}Eb=drkjnr7KT% z-@4^(t-4Wn^Wll7(DXl;AJQdhKzTI>XKjVUb8EhRqwTR-@>QRL9jo7A<9s{~(8H^5 z56+Ocq(E3+Nx{v@M70F8TS`pvJFE4>BjQ!?2|XLI$O}UldU@9+O7vD-kP+_0-?rk~ znHi>v2==!=AcbfPn88NJ8Is};6nDCiM-OydU_0;mQH9;VuS10Qb)kwM=%mDn+Qe2a z$rr}?%|GtJWM9!FHlbpX$!N?nE!%P?!?c|xQpH9Y%|$9A&QlZ7G~`qznr0~v@nMQ9 zF;h|-DRrF1D%FA}TFx?>N}Z)rm{jY8Nt$poV}>csD32m9qb-beO5@J|M=%YJivoVsOutid$C>4Q$#IDnz`8c-G7I3`Khjbm-VoJ$r(i?Ttt8~#D zv=`~nk>fT-l4ZG&$l-k6JkCs`-|aP7OOnQ~-#>m50TfJnMfUf-6ID#BPr!J)T~<~l z3-XzGy#<4=As2+GBCo}`b0)#Yv}1}&6;%n&-M~9l`7Aj!w_}P&5etX{KJogAMIGQP zm4PbF(q^i}z#q@kE0tBabJ0R~-^S&Q>};{+WpsC~(A8A6+YXWg!qB45!CjPfh?Qn1 zsgk*wZj}9vatD*FW~S&SmD=sT=9CAFami%Bc=(F?JCyG1d8a0SUZHPIzRZ-}osHCO z^&L9KDu`RGMVrI3gZ}XC`3Np|503gLaHDLA0WbI98>f^uT}U{%ws)n1BWsq|aQ1$0 zgVj-0C)P1b!)01I zvU|oZ?qk&t^-v#Q$|ZflAx2oc!|mGHcB9=|r4d;~uw?25p%A_R4Qm-^$g^8eJjenbZOOR63VEbQ zB^K0U87BN#7RY!@7KT`)Yum~uv$?Wvm>hRuyq`xj(7p=eRHZ)41P$UmU|LhD)5u47 zLQ5HmBucc RY_)p)IKX+`cyrz(e*ghnh=c$D literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..57069a7dc8e917d977fe848f1f0aecdb0f6be929 GIT binary patch literal 1563 zcmc&!OK#gR5Z&_>voR8*utid$Bo={z*pAbn`M9>w6iBkrhjJCvVnWGj(i?Ttt8~#D zv=`~nkz>S0)9xx6G&SGHH#2OFhocVb2Bh`#*Y_Vp00o^~lf6CXSe3K-BQW0URkcy^ zoZJ#;G-oi>R>XaMe?jq6NCBb8ubgpg&<6O@ zWTGm)FsZ6A@rSeITBSAaY_`Dad-yn!Ddt;IqK6xWp=PSrvydzhh91ostfFdCEG-9d z9e>iZwXwT49^fJCLYKq1R=dO3oN|wG>M}`v?!BV!4y8M7=R{{O8;p(47O673MWpWQ zZ!pkCf$Xv_?MzSi$I~}w5nS%>AC8aVPMHc5Ubf*Yr<8VVO4z?K50!#LqZc=D`o6u! z>aVf(<4TQ?WhW};s_IPiJT9GsGSyj8&Ybh2+%K!*>3h0JYRi+QfGtT&`VgT^g7Esw$idV1iz)dPn%qp9>q>*vrDM;ElAIKjvy$ z;HmR$Nhx&fAI67tPFhgi&A@0~V_QC|A6L}9)TK7--(WM3Kf`UgvfaqQR^VSTTf_|^ zU=%qgB_g##3TC$4Fqj+?+6@GJMpX-~(wZE|8fG84a*|Hf4CUO_|5H;|X7G*#!c-bQP~Qaq&qRdrut=;bJdyMG%H54Y{9t zaUfDxD3*vMcO}x3rySJ@%K{lnH*^yk#$n9SI?Safg+K#Jg(m~wmC|Fb@@bZOSte5+ z=R8z2lgf7$V=m>cOn4GYDtsEyEJ)Lodw%c#Be-&o%3OoJ&?e3V2LtRtOq^-)1@9jm f+}83!>e&0J^ZY&{RUMmp*$|AfkhEF{XCv|(w9Ta% literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeLinecapInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_strokeLinecapInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4f5e903ac172dd35f6d5944fc816a301df91752d GIT binary patch literal 1372 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_textPropertiesInheritance.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/cmp_textPropertiesInheritance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..da2f48028e90d4246544572eb5b8dc8fe570fa6f GIT binary patch literal 1662 zcmc&#OK#gR5Z&_>voYeJutid$XcmEi#Ez4qN#i&|TOjp9AKFzAizy`sNpI9muhKO}ncA>oc5r^EmT3ZjFbd4(m$N`tkGIcOrm-Nv_D=o_C^)dG!$(@Au2f z>Ucpu5pT3$Ff`act2C zcDK#rd6CT*Pf()!8;wwN-S0a}jtIkuW)E(mY*N&o zgSd*X&3xnRZ=46X$tpL+Fs^ia_>xl|Fiw4@Xvl*X)Zd|WXV*J5+4Bx#YqDjkZ99+j zUG)_P#%fSq)}@_`H~Zs@MdOog&sEwApl_MA#x*1yrlzCYsaYUR|(z;)nXIXlKp zLBMMAjuglgja@;RazJ*DhEL=mLc$DK529JK6Wl11T^WKD5G_di*x39tl8CRtX=*pR zB8L$k!t-YU!oUGA#=AAfsyLXk{Z`v5PoIV2@(~x=>juCCt-1Uu{C6Ya&gvO%SrHU> zb3rJCFJK018)rz(T~IvO1Qui4#s$`F%a2MF=(dgF(AlyD{3)IY)e}D{@F1*XD;ww6 z+PYErY6zEmewK)y;;9H`YL=vm%AS(hj3q%3#3@ZO5mJ_M&Jvz*8HYSW*FXs_nI8s$ zkckdvJPorjQK7GW>g!ZzR7qcCJn>~OQAwO-Dh`vLj~+?|4AB!2bBO~;^#4DDsrRaw x8E`Xm;!W`Efs@t5yU0J|h{M^?s%Kuujl9m|kw?lZwpA?%#u)zHv<}Zk(8pE=nHeh*kqO}Of}f^BV?^2{HSy#|+2kr& z8QdLp((mQ#*g6_>GmXx|MgyDs*N6xi4qYJ7}4&5 zZj>!V?Kumo;B&s|oXyU8hMTO?JevoVKAV3lxwM4jrtr8U?QgjGhVwV)#``>e*UWssg$8dVMtr#bFj=m@yY}JJ*<`VN2VZniBH*WU_)T)ohXe_e`{HY< zVNv9}d-(9s?rpP9%Y- zuLcEonW+e^WV3vSRT0MbX`te`F-Xhg-4LgFDQN{4HU z)(>pzV-=CU3x3k_#p;_Qi8>02vHq4x@QZe52hJT4PJ21?by)$O!*l<$6gcECY%uJ#2xI@*M6GXw$C**VM-8V-ZZV)4fWn zr;_`kN~G<7pwj7xr^as&PZUteyKzvTg#8Ga&^C?QMfF^0!>_pX2hlTGdK0@wFnb97 zXAp(k4T(O_-V<*2j0-hIpXX_o$3iD~P=sPQw%ZRlwr$#wz}_ZlB+v)4gU!Z{KDJ34 z0gwE+!mS+JXlxwWEP0yGcCb!Ie%O4+HetIb`~BKv;iywTMZ@mMPg$oJ zN}cRixP7gvB1k{$f?h)2&f(_5bj_G^DU{=gDA0*EZOuJbNh{D?#cmv8xEDuSb5jZQ z5yIl3h{J??mOwvrG83*$?Qm}Dz;i;6^H3%d9Yho+W*C|(2;4-Pf$NG`25u0mIE=_S zO2+>`gInWmmgLYpO;-5SYbLv~PJh+dhIj-9_3Orv-Zq9$-!@oT1w~c2tZ*%d4F;Fj GSL`1s^?`x_ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillOpacityInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillOpacityInheritance.svg new file mode 100644 index 0000000000..d2bb4649dd --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillOpacityInheritance.svg @@ -0,0 +1,7 @@ + + + + + Test Text + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillRuleInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillRuleInheritance.svg new file mode 100644 index 0000000000..8e58b3f501 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/fillRuleInheritance.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/nestedInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/nestedInheritance.svg new file mode 100644 index 0000000000..d4e2d8f7af --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/nestedInheritance.svg @@ -0,0 +1,23 @@ + + + + + Main Text (Level 1) + + + Text with Arial, italic (Level 2) + + + Text with smaller font (Level 3) + + + Text with red border (Level 4) + + + + + Text with 50% opacity (Level 4) + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/opacityInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/opacityInheritance.svg new file mode 100644 index 0000000000..fb7590ed4c --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/opacityInheritance.svg @@ -0,0 +1,7 @@ + + + + + Test Text + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDasharrayInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDasharrayInheritance.svg new file mode 100644 index 0000000000..0c8f128508 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDasharrayInheritance.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDashoffsetInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDashoffsetInheritance.svg new file mode 100644 index 0000000000..df973106c6 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeDashoffsetInheritance.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeInheritance.svg new file mode 100644 index 0000000000..07cad9d0e2 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeInheritance.svg @@ -0,0 +1,7 @@ + + + + + Test Text + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinecapInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinecapInheritance.svg new file mode 100644 index 0000000000..bfbb303ff1 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinecapInheritance.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinejoinInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinejoinInheritance.svg new file mode 100644 index 0000000000..9245f32262 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeLinejoinInheritance.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeOpacityInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeOpacityInheritance.svg new file mode 100644 index 0000000000..dc10516d49 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeOpacityInheritance.svg @@ -0,0 +1,7 @@ + + + + + Test Text + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeWidthInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeWidthInheritance.svg new file mode 100644 index 0000000000..766a1a5027 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/strokeWidthInheritance.svg @@ -0,0 +1,7 @@ + + + + + Test Text + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/textPropertiesInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/textPropertiesInheritance.svg new file mode 100644 index 0000000000..78a0703ea9 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/textPropertiesInheritance.svg @@ -0,0 +1,8 @@ + + + + Horizontal Text + Vertical Text + Vertical Text + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/usePropertiesInheritance.svg b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/usePropertiesInheritance.svg new file mode 100644 index 0000000000..c663c23167 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/css/DefaultInheritance/usePropertiesInheritance.svg @@ -0,0 +1,16 @@ + + + + + + Test Text + + + + + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/circleLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/circleLink.svg new file mode 100644 index 0000000000..b3e6db828e --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/circleLink.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_circleLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_circleLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b5c165f504efbcbe0fef09fe4045eca3fe4818fe GIT binary patch literal 1114 zcmc&z-EPw`6u$RUoSSN!P#4>Y;}}hqww8{G{gk#sNLw$Q*2Ul#~X3Ot8l>^ zz>8p)Y=sSR%ehFLG^^sX$QvWHGfGpv&Xr!&j0N+5y z*qD_qu(X=Ht$i8;^ z#>}_icnj|PAzf{j1MP5k@RC!WF#ljFmrTB(@eZXsd(oLG{|y*fQ?3fMyY&>;?hEvd zMNs=}pLQqbhoi~siz!^~9v+WQ;SO!%3tsKPXHF^YhLUi2YwsI`V{2BoaQ<#@+iRez z9jtFwo;w!3smtavFh8C}k5n|}9IP?!FS=M;tcXVvKVfT-3K0va;K9e4PZkW8kG_Ow&wO0? zfu7)~^z%RUF|WKQzC^06&skmHpba`d8NlTMa>Y}TlpIyYc#b-)kjpqzWg;|Yah8c9 zE_0g7v`TYc7D~oK=9FcU7fNNZO!8P~Tq>zbo(q~w6<3u~s02kO6Re7=Vg=Kw!nBMv zM;eQ=r;I06%OA1fS6J`| z@FUCwCxI5RWfu1M%zd7F#+~tS)Wu%xb-w@j`ppZ0fy!>Y!$bd!>V^3L$ou`qXp&3s zqvwy72t(z)^*pMJ7PdR*B6h9=RU4{J11{XeKc}LS$LisV+0QTyArXA;kEOOYz}F@d zYSc>S)Y!!DFS8rUjorCykvs3(<3ZGhtkmg@FizlpnYHz2*F>lV2`oA1OHqV|27zFRjhK-`_+sd%oi9a zO_27m$GX#tqw)0h}GiQu-T}n8*(~k|oiB_vSxOjK4tJP7} zHa1Wz%N_b}s-n4a%unY2mWpQQ;@E3ljyK$4$N-V|!ue*#0s6lUz*0S3WyTRZQhNC- zZab8%797b8y6&}(1^LqJKy$wUt(5tTJRUTa9)sAkjkXJ-FbqN{VS{nB@!W!XiwT}Q z!+2=>dSb_7OT$wPtpJ~3B2IUh(XzTF?c{zsgsVdyQ6Wp1IG2d5w1ALVC`cx$jPguy z7R!uLi2?DlKo+vN|NkqP`=@oOz}<_9Ke4j}H{*#vtv(UNR#~03uDedw-9KgRHAZT) P9(08EkJ5Q{Ir4r2|IsqM literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_groupLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_groupLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1d9a208345f86c73b1a7c651f62424e04200cccd GIT binary patch literal 1115 zcmc&z-EPw`6u!?>oSSN!P#4>YV;fDCww8{G{gk#sNLw$Q*2Ul#~X3Ot8l>^ zz>8p)Y=sSRi!T!AobUX7=Syca7b1H;&J+to4yuUlRYx6$hEJSv=C#V}NZS zV{FXI7TEa0?=SLeES$fEYFY62{E4TwUOdY(y}w1DYL2~LXel&8eMCD$a5Qa+4YIGD zzA^JHIN5^xen?lFx(H|?H(SFPT>x1;|pHx!DmJY>4uVUcx&$)gkx(~w{ZS$Z`*62 zsvWFvR-QW=zp2aSGB7`$#g9}p+mOIs8*=o(9pwZBpFJ#?$@n++J?gFbrV;8@Y zwi|gALSUFcH@pOgVi9$qxtoJE#{ESYYl~Ink&z#5QNuMXQSwD5OnuXK}U_#)@>H; M$%s0gR~N(RC*5-~NB{r; literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_lineLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_lineLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..105838b340401d4e5a34e7beb56b41339d570f54 GIT binary patch literal 1115 zcmc&z-EPw`6u$RUoSSN!P#fE^;{;8Www8{G{gk#sNLw#r$0?cCcsTCV@kZS6DqQde z@FLhHYhgp&Vkv*0zjKbycfNGS!%>&?1nPYM@%03ZQl0HOVUfvKIYT>~NABs$kcl^>h+751MzFdiGT<;&9jL+a++r}5XK7h{@W84iT;pomjG#XB3_KyMx_X zgH&x}1GDnlk?2iTG*?0S$voOh(dF`7QZ zDEA#b;bGwgc#08ky(btG*$#6yuWq#sMn4_G)gfn`s3MWEkVVQ#MkL2tX{ypPS4k#G znRA?B%xRL9M5J1=j4Fw_kO@yDCuPi1l@XSaqD-iiOew8%t`k96p(G<%#Wa>#$yJ_e z?k_BaU`0SumGuAr3FgshT^a~~#3Y*dSwa}_B$`&AGzjmh&c@N*VCe3jhDMFct=kMb MAp~_guP#UECw|N_IsgCw literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_nestedSvgLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_nestedSvgLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c5aae1687769028a7d4bda88658ce9cabbbc610b GIT binary patch literal 1117 zcmc&z%Wl&^6y48P+)dP0DD^x%exNE+n~+k`M@S-s)MhdETnAT8ri>?5${(@eS6J`| z@FUCww}BS1OW;JA&dDe8Y$~Bz&DUF zHfCi@Y<%JO7sWM}&YwcHB;5DBMN?ZZo@JTd-=a@7$6hbA6dGYZqMadJG;N6uvag)F zG4m~0Y{7j$q^r$xpd9WFUUJG~#;IVL%vkb*iXBRK_M$VR{|y*fqgN%`-Fk{^_XYaK zBINsQpLQqbhoi~siz!^~9v+WQ;SO!%3tsKPXHF^YhLUi2YwsI`V{2BoaQ<#@+iRez z9jtFwo;w!3sdaN1m>ssmXE%eXU}|G z`k9{KXzD3=>SJDfPkeEjZ+*_H`UY)~`pEz;4>IH$bFL+$u_&@aqYzkSI%b8^N>_Oy zcu_D_R!PQXUc>^G&{|ij@)#=9v_PeWH_kKf#iH`~REttmOn6FjPAis5mZz#zoTHLF zt~8Sw^+l4j_y0SXMJLP3K=>!d(b(@2!iLAur2d4EdR28cn(hWkcmI?$X`Hfdv*?5g K(&@aq7?Pj1c{OAJ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_pathLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_pathLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dd3f1752043444bae196381b4e9409a820a0ddcd GIT binary patch literal 1114 zcmc&zOK#gR5Z&_>voVsOu*HwQMPMMY>ojOSu5A^3R7Ef*5?_-2Ol=BYCtj=HRukk0oXU%!zED46_)93BQ|x?Z>sz<9skIIHE7 zd?dkW$zW*6TS9bQv@q^`NVp3fnA+*uHQ>`tf^%I|^4P4eD1Js+1Zl|U!B|@40N+q1 zx-l!Obc2Q8U*qL zty%2IVn-felddxLP&&Ooe90*f89rDnVj*5ou}A6NL2z!0e-p;m6f33eel^o;_XP&V zYRG!5N4wLDqw)0hc0#oSv7v@q+(t+lF0oEAz7hkNcE(tOTcGxb6qew(h!Xw5RCi4sGEf(_h8O9@Q z=n0P|*#A?Eq4S<#VUq1IXJvJ(t@ruq5Uvh|%9-M-%;SPHk)~YJgy(UTaFrLi;<+jl z%9SX2m?$Y(CQC%|orfV)xsC-@QmCR}rEe{zk=69-L|ww8{G{gk#sNLw%5^ zz>8p)Y=sSR%ehFLOW;BK?y#KM%sD|@C{^) zjak_o8(;YS#rzs`=TD(p67GB6qN%Nx&$3MKZ_%e(V6PWi3XL!y(asPqnzqCS+1F0r zn8g+xZ^3;(q^nFl&<=M8FFECc`3Fk`r`Zb{?@+q47oC~n-++-d#VSX;TTOB8zChnt zglwPf)9&Q_a5Q;+F@>w$!{gB@+@WoJ!K*#^%qgYaP!bMr?R|rAY|ZKx&fo2Adks{z zgZ0hIbH}1LRnc4q=Et+>k&0#;64+})jvlyUl0qtH4-4ih`i*_h^JF!5fz_e0%U?;` zjXVk=FifEvUa5q9NjlKnEx;P%{vwRE#gcd=@guediIlN~5*~b<`DDSMe)I{hp82@+ z6FtGv)D!U3$Gr5O_(Ym*ea`CY25k`f$p9`71jDq9^SEG0%Yx@zlq%*4(o{*N6;Bcx zvzYS?Go7RiRi=e1w9+UNi8;$T*ObPJr*mFlAw-Os(1}h1L<&KfER+-_*NVl+vqWQ= z>%^y}g;X@|{r?VT(Meqz2!F&l8v9*BSnxQSRG$!1uc^*P(cK{E?w^7tjnmd`7M(Cg KI-OS+L-G?z)h}QG literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_textLink.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/cmp_textLink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3f579ec0e02a167caa5f9cb2d87f5dde37ab3e0e GIT binary patch literal 1114 zcmc&z-EPw`6u$RUoSSN!P#6Csaf7BxTT92peo9**q^%cDd{Q#4@o?O!yIouRJOky&3-|C?k9^kP1b#>#pO@C{^w zjak_O8=v_7MShKi^QVw44flP&qM5Ch&!WukZ_$TZV80(q3WYH5(e@B7nl{A-IZ#gB zn8g+>w%~zp(p9D&Du=tnmz?sL`HiJK6UhrIb|~H1i_VPxH(+dyUKMC}s~N7{7Z@0e zknOX5+MS*sj;F6LW^lE8csxFZJG6~Yc(n(gIi<84Qo`Y_y>AeXty$f|`MbSst%0hx zv4L56?pXAu(#>UHelm|9sc5z?fxXt{=z%+#fK28O^X0whH}XBr(^c*QsUu^Tzhbrn zdDKB5m_j#ve5_(gI?&uLz#8NJqKmb~l6WNX9kvV7BoPUe@L=Q22MY`8M_bH$&ul#L z4L!k8>HB|bV_tbrY_ZI?HfL3JgEr{=WC)iBg2e?Yj1||SOjFF26kL>CGKH8InGllk zo-Q*)CRL$I&b8F6D3PV5$Wq-yN>iybzvr^VEY39b-ZAD3qp literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/combinedElementsLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/combinedElementsLink.svg new file mode 100644 index 0000000000..3931c612a5 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/combinedElementsLink.svg @@ -0,0 +1,9 @@ + + + + + + + Mozilla + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/groupLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/groupLink.svg new file mode 100644 index 0000000000..5b8433878b --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/groupLink.svg @@ -0,0 +1,10 @@ + + + + + + + SVG Group + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/lineLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/lineLink.svg new file mode 100644 index 0000000000..2b30853306 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/lineLink.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/nestedSvgLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/nestedSvgLink.svg new file mode 100644 index 0000000000..fe04173e53 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/nestedSvgLink.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/pathLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/pathLink.svg new file mode 100644 index 0000000000..4dca513c68 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/pathLink.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/polygonLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/polygonLink.svg new file mode 100644 index 0000000000..d76569fc74 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/polygonLink.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/textLink.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/textLink.svg new file mode 100644 index 0000000000..04ee43329e --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/LinkTest/textLink.svg @@ -0,0 +1,6 @@ + + + + <circle> + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/PathParsingIntegrationTest/cmp_tspanInTextPath.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/PathParsingIntegrationTest/cmp_tspanInTextPath.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f7549da8258851d331c72f6d46c4cb8cd6db786e GIT binary patch literal 1906 zcmc&#&2HO95WeqI%teTeM&kZ(`4bodY{_ziCb23JbpgkR)p9A*h`2II#ZKR-m%K_2 zeS_vjGE34@ETL&{B?WSKcD|W!emLq)$CExAgrxWP*Drq&2^8$&j+~r$Z%nbQZ-MdQ zu&PU=R^*;|lNE!pCBG74inJ5s%0c`cbYzR#6mJy|*^~vBI>p=|-FK zC{N5|{TW8KG!PHifcEF_PN(yqFB5owbb2v;10PLUp~Lsb@F%B~_MJ;OU6-FK0~e*; ztl`~n$2+dUj_aAK%mlOSCHcx!{h3{^B~PnsSJT-|i)eDWgSfhMkh7<%2%ipE0F3ehl{Zfv6b0Ttmp5`A zn({u8oY->Jdh8lu+kdXG6#DMfx&XZ*J*Yk|p|rLpbl^)N9cR41Tcg%}(-nwo4pH!< zPIjF3LklGZ&UZoie*7#dmrvKR3|y7|YebG|XBkREu1K+EI=jGlLJ1ET;ab(V1lJ5n ztcZK!2H7B5&}O5F=+6C?C`deZnwkWyN`MOZ>t347@hiT^`z*m^Fc54IMUZ4&qM9sI zNLIvgWKb^2(UpOvJx=b(dD37zB;(Iukw2g@^f@0$2X8a(;ILW$D>#lFc + + + + + + Example toap02 - tspan within textPath + + + + + We go + + up + + + , + + then we go down, then up again + + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/cmp_strokeDashArrayLines.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/cmp_strokeDashArrayLines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..da376edb3e15e82b275f66f5879f4faf7728f932 GIT binary patch literal 1707 zcmc&!&2HL25WeqI%mpP;1>RkI{ZmCq36wNyekh=}65(Kb*OUsp$=akz->8?qN)LU5 z_C-1i2HMbs+`5wO@$CG3^X=@^y6sM#H3Cxm`Rn@+B7lNUK9R#i=S=0}@*^LMr!!;F*5oZADwmZSCF|mCTw6LXRbCcg!}XkVB`5K*z8g~f6_J3@<0GdV8?*tw zFzKm6&rPZdO#I<8`J~bkC7aE+`%PTVz)WUaQ3m(d3PX)mvuPn&APhaK8tg_;ACBQ>fby#)ou9YEayc!DwA#^DMWQZ`^yTmu%Kuus!Dei5nYaH^M~& zF3Sg_$a|6_E~~^MPY7!W_>7pRlU$KN0244Ho}gBkl0J6*4H*V#gwF_FS!9n4%fX~2%oGb}JVI2nPS=WW6Y<_l76s<6! zune|6Q|^q)kmQiy?Wh*`Lbw7lSm`*!ma+@-wa(+=mW~U&3=iyRfOqGi4o~}`&I_U~ zo$up)T=|wJo=laobMv$f!$Zd1NJyW1o^st(21+oNQk*4$@Uzs9VihHlCvo6WU!_uo zS;jrVrBaE@r3|ywjXfsAB=xw=;!MOUb2)Vr!C4q(VJLX&MPU{zm$|9(1DA&>W1$SG z6f_H){~y7~In6T-cEI+W9*zL8SHI`^6vHtgbBt;pUa&h=r6DPIW ItIH1g4LhB;wg3PC literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/strokeDashArrayLines.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/strokeDashArrayLines.svg new file mode 100644 index 0000000000..dfcd710735 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/StrokeTest/strokeDashArrayLines.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanBaselineShift.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanBaselineShift.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1db3ece13afb8e503132ddf3eb5210e4d90faf5 GIT binary patch literal 1621 zcmc&!OK#gR5Z&_>+!%>b*di&Bl8V59KXDs0AJ-O|0!bFMNVy7PF`?uj>5aPSRl4X6 z+KY5(D|X|iNq40ITAG6De# za*l40H=I*EFz7u(x=^(ko*X3DK>MbsbWxSqxf^>&TII55?#>9jQciHlFT9boV1n7w zVysKEu&FK~?#GkqrA{k&a=}8U@4)dAo6onMB=^@EJk4~c;|Mt#6ae)XI7L}USX%aF zC9lkEW9)B?`|ycXZi<1d^zPs_BP^hd_%tShidV$nA!MiN9U1k!!N?l5NVVO~6Ma{G z#eHKnj@z_NT9f1MX!7ftXW*+;}6XZ zSFz#RlcgR)j=dzG>#{XAb6I%%MQT)D%)HaQ=oV$ZexEF+mCKV$0bSmn18+RL8q_K4 zn*|hwdhc>op1F#SFII?UE;kTYmKxIAE=t`voO^#SYvf!n%lg1>XzY9ys&0UF+qsGo z+;V>*$LSn3aCtk!)|d)fa;06}pnI-EUCLhu zm%t)!N9;-PbPauK((kO!fNPAPYwLpr=RU_7evmN|+!(P@*di&BvWmcfKXDs0AJ-O|0!bDmMY#$hF`?uj>5aPSRl4X6 z+KZI56}z#Uw7Y6SNyB-Z$C)?Nn2g44+zCPB$Ioxy0fh)^aRv7Gy(3l3t4|PV=W2w1GdKiYp~6`{kmAZog+AFE&}eb4vVhqwG<0)$2J*jtI7h`VMZRtV1k4 zhrHs~dcJY?H_k(Q$tu&uh*zpPdQA`sFhM?!5X1f}eHVQ@^+(GTxNq;hXdm6)wX8+CP2;M1E+JF}=_=O;Z+AbvQ- z)`lzFa2@bcjct~_ILlSpp6Z+z-a#RCk`;6BEGzm&nXUh43sJc|xfI~#>N)V{WLJbb zWkbENRl(l7EGf@jO{bSD#4?u~h^tEt8SGT0)(&Of^M&oYvzLW^q&L&7sk{va(!luU5PFl1g3FztP4)@PxO^l~W^zt^)tc`8Tmcqre#` zEYn*sh%G;C+X}{MP2Aoq>`>^tCC-5ZB53BIIn=qx3YE0tD{v6ou6qv7D5PW?9jmfh zBmdN~_eP~QS_G{2>IX7PeF{_fXd~FB)jhCS+bFhK+_DjBbF*bbq1Df}4cnQpWedpe zd6Y#vej&9weZ*FVXV=QONp(1a=ldiKlYq%?5T=r+T=@|bLU9}lidYavoChil8BV8U z5hf%NqWAw9TzZE^s-YWcQ*UZp1G<)&db8}aoj|sA8_SW@b`z=nbRvPW;-*>(0waPz Kqj7LL2EPC*n5$9% literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanDxDyAttributes.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanDxDyAttributes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5ea5daffb1fc2a24cc5583eedecd761f19455e30 GIT binary patch literal 1563 zcmc&!OK#gR5Z&_>voT_$utiFuC>4PLf8sP~KCUe^1(GZ%iE3Gs5J%(C8et!FoC}5D$724gk4n?u3E`iwnepxBO zb99TWNlsua(FcS?ku+j`GA8cEbR>&P6jcev-OM@?Nydlr{tWA1LNPFUVNJQxDqzJ%v5xCv9hRhxiK+iX-tOOMQMmbsr7PMedD?=>m#~}RQW1YLx45yOhqwt z&4*ElbJT+JZUIWlN>g%myV~{LYYa6({{ou0>WBf-+-nwilsXhrc$C>Vfcg%KwTu#-3bTHb*;I37ONQAqGNLEKmY!?> z>5qDvU|V|3)%AOnRf=cVLYX;rFov^Tny@%Xqlm{?&@>gEFTlGllnu*kXI+0LWaaGlX NAei{5)!I9mpkGVnsb2s9 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanLengthAdjust.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanLengthAdjust.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3230e9f81f596f0040d8b36374dfa243883cb78c GIT binary patch literal 1775 zcmc&!-EPw`6u$RUoSTYGsEvQ(I6+gTtz7}Zw$es`G<`+kqe$!Px6faQ1PXR?LH727=cb(1=fHTkTh-3! zIeABd!JI+gk{5)SGH=AV^CscOv}eoOlywE(-6%LRd7%&N)hWdz=Mos>9eEZEwL>l7 zE2WXC?9yeX!qBfzCKo2Fap&VHf8WIwq^_86@snOJ3_6>cZr8)|U>Mpo@9-B@6J({? z)3v^|vyHOYDEIK8bz#fCuFX#W5vM$4oC=oEh{X@7ctGic-QdXP_bUvY&6k;RJ4I@) z>QB(K&Op*(9oilr?+?dMPEvTYv;TPb9NrsOVZb-L@R3tW+dd@hFWhxy;IXsI1suQJ z-C&J2SPyh%2AJs}E#{_bkL+BR!C{%%yeMbEtD@X5tK#N7UQTMCC!Yeg`Uc*3u`VolR^-*Guj}Y+ZL!Mb#>7{qF*(>$m!^Yc9Q?kxvG=|z?hk+i>*nidO&i?w zpD!wfw*Rd<2(me8LG^wH&e|H=bFHxc;@y4S>f`k!+8&%C zuSkh#y_kZV;r1OlND(f>X@hjyykq@P3F(~djBx_%?A+wAtgyOJEp+Dpw!FOV?4}pw zFvX#Kajz?(I`=!%We&5;>&1EXw=N^PMtAO(<=cON79$`0-qUtm+c@aTnJMNqAvj6R zf=EgsVG2KFoFOau1?7!Qa_s&)GLDbCE29dh;f@~N;x81x`jZNI=8moUIY#YtacP|A z-lu&y-J8aog>jfnrbdK9vQXrq3Qag=BFZ%rMkiF~%4E5bS*Q%xDwI=6jgk`{#ymvoT_$utid&Bo~1Jf8sP~KCUb@1(GcEp;eZTqe|bD!EZ>|2aNZs7FAm{Ws8R6my+pE68$D_I;U$g|%12GRcaSb($69qRbxum+Po9c`_*=^==vC*0ZTWld`E? z>!J|rZI+a0rlS7E#-h$;YhudMm`t{d(h!Gp>(6ENjO)6r59sDn<(p6q0Ul{*DvF_R zJ}!qiM;$0{SD>VM{{Z_p&r z;E3)g2+{_%ev>=kV4E$-k+H*|R;cUCO4Bgu1(#?q(B1Z2zuhU3YLg+-+-Vj#oZB2y zc#u&%g!&GOM;RyjEoS{9qg>Z|ONQNNWJGuLmL8+O`{Rx#$d;bVbp9V?l?t;fq0F2) zn8Deun|?J`D56sDe_o|6g@du&KB zNr>ZwQ9?YyMC7C-N|K02X`Ev2auPA>agIeo9Tqd3y4a;*%F@(v+35cxxUde2RDu~v szU6CjgCVtVEwfL0g6P)k)FY*DCQAS5L_uX0s;VZ$kTcZj?48WfPcYk>Q~&?~ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanShrunkTextLengthTest.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanShrunkTextLengthTest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0343c95237f10a04f052b2ed498b51baa0cae821 GIT binary patch literal 1664 zcmc&!-EP`26u$RU_y!d;L2QRO$y6axC|kAuP>9w^Z7-bIp{bg=X^e-XHtqPR@#E*W@5sXh>-ZY&?mCC6m{nJpvR<#O zj1oDzL(V9tc&O1SLaLCp7*5utyEYx@qEbawV(V_=94VQJJ^gS_;FB@W{w|%dFrb6k zLS>>#JvWIeA@HY@_*x|uoNP4T-uGZRk;(EcFVW+z0#`HD>sd$^2nCBe2YXT0Ar_hg zQHdKpTPwS3PylCMsj1bbcA#wlKJeCT-GkSiDk3Y87 zSos?3o+#A_s_aBruFCdA=b~`-i$u$;m^o)z(J#vE>3celD_bX90=n28YrOVsn^2c* zpy$vP>U_v#d2V|;xm;Q-YPmMCeW^|Mwz^Vt$K%eQ8yi^Pi^i_tjkL*^v1$rDG0(P? z;I{p<{7G`uz~%i68?7s#UqwQnrM(Eboh+wui!lQ7I%8BA|D@F!wyy!zo_L7zNjM;o?c=QE1eLjCqjChK%?? z(M=hJv9lrTvTc7J54ZGu51zuxwlX5SQN|9#gCRcO6>01fKTwQu8YW310^b*saMqPl z_=@@g<1SHgz`ZzTf{9qkAOMl1gsZO0WtfIa5f+j(One>((j&~}DVJ$CUc4|(X3A{dFsy$A#&oJa*Iy4qjuWg53`}xpA TWhG3tAOxi}M2*J&$q4-dxroBZ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanStretchedTextLengthTest.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanStretchedTextLengthTest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e2a31e4b70928cefd01518e7f17bb97bfdab29f6 GIT binary patch literal 1664 zcmc&!OK#gR5Z&_>+!(P@*y2Z&tRgVr*l`;)AIBD&0!bE>L^%p#F`?uj>5aPSRl4X6 z+KY53D|Ta}Nr5iP1w{?#^JeC88sp)pO*=kn{P_9pI}(^+9bKc{UFT5cv+@d4*6S6e zQF4y%kTaT7Jk;nEA(bb!7*5v2U7HScUaGt-uyr?aj#QG#J^gS_;8!q#855VzSQ^m5 ztWue%LN83L3JCn^B)V2{2`3xPxA#3*PH3|EmY4AHR)MRT>h&xn3xtA2orAq7>JXLY zK$h}G&(_L(tvrAv%S`7(S*qsnEhEgOjBpwdkNR&2-yvkD(TXhqR~1{qgkuNr*3+{deO-e6LIa0WVtk3nPTIZAjd|HIIeD?~GpD;^U94 zHCAtpbx#&*1XXszY_5v-M9*dJ?B}sgvV7*8WqCg@veo}|5tX)1wgj}=9c#SyY@1M* zY@ip=73zG*lH%O~0q)>gC%tZPDD~|li&9WT- z;D%DR0@M+N1~&T_{cR702cuF*C_q5(dSOopE^vyUWQ+n-yKuge2?~wckTC%OHe|#H zif+m%jGYac%eMUqFWA!a1w4f(+tSGFMj1N{4~F=B*Hw%}fuG8hkTj5jC$cNLOo@c1 zfy*U#Q%|yPOjF?ojI(Z+E2vwN`dr0n3tSO{wR{Ng5|zUojbYX;&qYttTOb9An()<4iE}ers)!0tWi8F!M2TZlcY4#b0988BsHTBwd=(V2@ UJyev^locT;r2%R*_D@FW7q-X5?*IS* literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanTextLength.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/cmp_tspanTextLength.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4994e93217c4a946c8d885a289bda6aa4b1e43bb GIT binary patch literal 1505 zcmc&!OK#gR5Z&_>+!(P@*di&4l8V59KXDs0AJ-O|0!bE>NI423F`?uj>5aPSRl4X6 z+KZHwm8fykw7YUaQN#H>&b*nR&Yd~eMg@{u zVgicrA#VwvcY_NKQzmUbe3;BiSDnZ@wAe|p#@}NU}Mm{z+RM1gj#dL zD}JR`t+LxHPs|gmOchgJ$?o(uL4;z0TpS{Xy;sQHL1?Gv94hg$!dxq{PNeQ;k-V$E zz=_flh66l6{pHbUzI=Ne!L#n@&HMn~N?n?OXFd3tAcXohBphAq`%=O;TCK0)(T84( zm9<#Myp%JOV<*aTS@sty=Y_LZBuZq($~no3QBh`(|I2k;**w`4;CgqgaqHREph?+8 ztxZv|^DYzRsjcYZd}C4PvNf?~X-vl3MQMoRdCs598d%qLSs&2Nl+HJy8Uj4h&Q=t` zzWw+fOmfhHjl>F|`V}>VNdOkH}c#u_^ zXIE0&akD>#r@KL#iUct(Vjl;BrI>}(m52%#3nry2T;V4?bbS$$lyWKw_XQ7W%3Xqa zEGb7UWpRQqVX^RN${1lnhCyIlurQ=vLO4d!brVWi90VzKlOS=a2$)afWcdFPoICqP ws-T@r3uj?CZYW`o%j}aGB&Gv9^ + + Baseline + Super + Sub + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanCombinedAttributes.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanCombinedAttributes.svg new file mode 100644 index 0000000000..52dc1dc3c5 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanCombinedAttributes.svg @@ -0,0 +1,6 @@ + + + Combined + Test + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanDxDyAttributes.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanDxDyAttributes.svg new file mode 100644 index 0000000000..b7dfeaa11c --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanDxDyAttributes.svg @@ -0,0 +1,6 @@ + + + Normal + Shifted + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanLengthAdjust.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanLengthAdjust.svg new file mode 100644 index 0000000000..f1e7723487 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanLengthAdjust.svg @@ -0,0 +1,16 @@ + + + + Stretched using spacing only. + + + Stretched using spacing and glyphs. + + + Shrunk using spacing only. + + + Shrunk using spacing and glyphs. + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanRotate.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanRotate.svg new file mode 100644 index 0000000000..67a8260a42 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanRotate.svg @@ -0,0 +1,5 @@ + + + Rotated + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanShrunkTextLengthTest.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanShrunkTextLengthTest.svg new file mode 100644 index 0000000000..31c9f9c9b1 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanShrunkTextLengthTest.svg @@ -0,0 +1,11 @@ + + + TextWithLength + + + TextWithLength + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanStretchedTextLengthTest.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanStretchedTextLengthTest.svg new file mode 100644 index 0000000000..7a147c4f9d --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanStretchedTextLengthTest.svg @@ -0,0 +1,11 @@ + + + TextWithLength + + + TextWithLength + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanTextLength.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanTextLength.svg new file mode 100644 index 0000000000..3e479955f9 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TSpanNodeRendererIntegrationTest/tspanTextLength.svg @@ -0,0 +1,5 @@ + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textBaselineShift.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textBaselineShift.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4f1764329db75572b80c7ec666f71e4b72daba84 GIT binary patch literal 1632 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textLengthAdjust.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textLengthAdjust.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6f460e8eff9a353563bdadcdcf17ead54d56bb5f GIT binary patch literal 1775 zcmc&!%We}f6y5tP?k1uYO2)5w1XYpRqyYqNLox!S(uK$4q*I!4@Jvw4AF<(ASnvn% zBU~p#LrW+~EbwB+zP^v+`#7!9VAy7zn6$or`}~E3K*44gWN$BcZpvAG4vhDDRqc$L zlXoN-&KV3Wc|nLN^G1w2Zz4CQeOuP1tSj*D#=()v3w23D1I&a;OD- zr8G8`T{>+l4E_2fyD+-OosSp$`yQ?!b;W#(pY(cR(AmuNdLEVs!_cOAhrg(rAS=zj zs@0{PZIs1ExsMO63tJ9UZFUBaIOURYDp;4sOgyCG0i_RigCm>YuP|~pUuxraiqu@y zpP+A@fo_L&XnS(JKbkx_N#V`T{^QYecyC;V0pIMxM@}hi`;f4|aMzWA$IdPnaQt$2 zgEiVG-cPKvC8Gf#8;*6{eMb&bgv)T+Ae}bvSU)s`bWV0AIDxf3H#saTtS(dwrTyQQm)D)$^nx6w zIFv8$btU4?{mxXG!|d{UabEqc%ZRSgox5fE_8*`n$Opgov>n$r4!Uw?ih1o4oTO$! z6ow*%Dg2OehOFcllsB@FWB1>YaeUle8I5ro?i{-pTTUl=3L+_8;+j!`>RTpH)O z_vrvm_oh*(DA#ewSR65BOp>sOt4L^;aN6xsEmas(#7U{cf|6G2@MK8714l~Xt^fc4 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textRotate.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textRotate.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f4bb73da5ce5f42b7d62e00db979b1d81b7c8a99 GIT binary patch literal 1502 zcmc&!OK#gR5Z&_>+!(P@*di&Bl8V59KXDo~A6FKd0!bG7P_BYlOei@>dZTW7l`eXN z_97k1O4PV%+FiMzsQEt5JWgjmo%QL!MV;?IzJ5a-6RhG(w7Y8^%3@i4#FPz(Wu;}b zLN~~ottg%<^bR3eq>UI(#>Ht}C#tAqQI*()3#=oV=FwQ)oe}tDjANHySo27O31+oL zAWOB@i7X-Shm-hHCKa4aGS}#bu&hw$tL-4+{k4QhOF0}GKn4Z{hvo)GQ8pQB%Slv4 zS8CZB+pX~gu2|)&m`0WCPG2*^9Lk7Ied1E`ir71Z?DVW7mA-5+*D75nQg`!E-c?`l zL}`ir0UeP3;&?P)yg3Q+d3UrwKg73Emyqzhhd(nyNZ+KyqicO%O1!Vt`Whd<@3mM( zi*+28at1ZF!h9vmexO!SVeJ)(O7miAo#w@;DD%hv#X7D`olFU6y<5h)jcj_*lx(8b z&=hLD&C~MCbTqiwc+|CQT})dVm+^K}8sczn{kg5430=4K0o_dL)h1O#fJfSyjuPBA zAD81~g*v#rU1F_N1(e)qH#_KFVyH>_7to&f1hlD>AtJ@5`u_^Jr8(9TouUF@-k@;^ z;3&K&9A*t_xRX2J*fv|ZLdK6^y+qwWRY1ekP^cGPqP-Aa+;ea4PRk73d<6Vy78ab_ z9B24J#)yw=9WEYaoWgy~`bEY#^m|K2+-GDIUiFrp!+wv)1(0OR&UK&%53))}`IXdW z)*MXn*{+Zg5s9z~psd-(qmTv!K1rmz`H sffWG3u_1O~E%Hw=Md0~$>ao%{Q>FiOs-UupbX60==N{^G_D*K#C(Q+#Jpcdz literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textShrunkTextLength.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textShrunkTextLength.pdf new file mode 100644 index 0000000000000000000000000000000000000000..31df45d07b2cded7e444541045aa11aa4c64fa6f GIT binary patch literal 1664 zcmc&!%}yIJ5Wf28?qN)LU5 z_C-3AY)Bz0RO+FY;&{jN^Lgf*X^e-XHt$H%`0?}Gcj8kClj4LUfVVVmP6Rw>BM^qS8fGQgkncGB{5ctzke5I2LP8dz%eGirs*?hL)C3?8g;A*OSJ%ofnI9Swgz>BgDvCtf- zN?n`jTG?GI58#niZi=C*baVJtFyV2*TplvXteM}?!;h^s z)?kfwN0oX6S$3j)rpxxk%v9m*7KusoV(OgcMZYNX$M2JQTw$It1$?nPXuS4}MW|CY zFmtF1cRu84d4@HeTr4dXxm=rIU22n^jjGh#@dM}2h3%s6MPXO)M#j#Tv1$rDG7n42 zXdC~KKgo@1xhp~XL-QNF4aN+C~nV~o}C(Z=A515L_ll(IbIhYQO#nfx#&}%;( UdZetBtrmpfoQI^**gYDNUt+GrW&i*H literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStretchedTextLength.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStretchedTextLength.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3810081b6cc6a2d54c47317922e9c4cb7fc9cddc GIT binary patch literal 1664 zcmc&!OK#gR5Z&_>+!(P@*di%WvWmcfW5;dKd>mV73M5%j6y+$0#e|ZBq&MoOSLvcR zXfM*Ctk{i>CIz}E7Zf#|&zqUYX^e-XHthtc@#E*W?}%f9b$pF>cb!9(&&n%IS+7@= zMu|DPL(XVU@lc~vgjAl?VmMh7Z*4lzd8zWUz}DTwIZ{a`_VmL!fnUxzW{h7tV_`rC zvr1*63cWB=6%hE-Nqntj2`3vZu=hP!PGqwAmY3-9R)MRT>h&xn3xtA2orAq7>JXLY zK$PM}&(_NBT6q9TmYL3nqEyY{TSk~i8F6Vy0usI!>D);&?E5mecUvbieS6FnEXv!6?yWckcF%kq9+WUK$_A}(#6Yzb(!JJxvZ**2jr z*+4I#E7bXrCB?bz>Ev>0QPpy7V*65?>}_?W<_`CrKR32(eOHZrf;ZA;zKm5Y(HfkR$Fhhx`n(HvPrip>l)ErHIm@@iSmR&xF&JU5-=yBx4ky+J*C#j8kaThKz9lupuJ> zP;^s9VeD+kJhttR`{9;ez~L!8*_K9RH_F&ycre80yD{OsOIX(2%773Sgfu0D`aTiN^Ie%p#=r#_rEcu;t|ui)r3|TvQ`Z%s zOnI6z9#Z8Am-sU7GG8)}_5MGCOXna@HMUc8;!NQ60aNX9ntg^L2h*WZO}(}qdhO>! U4;7^_Wkm=|X^0w){gV;;1v)Rn0RR91 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStrokeDasharray.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textStrokeDasharray.pdf new file mode 100644 index 0000000000000000000000000000000000000000..88f9f76fcb5bae59df595ef67d30c9199ff07839 GIT binary patch literal 1601 zcmc&!OK#gR5Z&_>+!(P@*di%WpCT~ePn-tL$FYT`K$3+%BUeEzCX}2ey-_#4N*BFB zdyx)pC2njq>8@H()Ntm_)6C;E#=}vYcRbSg`Rn@+A}OOPz9PH3)*%$L>J#On+bt^% z(VW~8Yc%I{sK_ZHP^7gPcP7MHhYnOxK~a^|z)h?pNb{(#?#~&1+Kf>y*`+m(H2P4n zbeTY@7CM0v6MsC3uOO*#XR>+byo-+&>U_S15Wf(eHU=5X7Q!g<5&9maNA){#nIb{K1wE)vkqJcRq| z8yzSOH0baSYfq1RaMx=qY_3~Wh>0*P_`#(9u?MJk*G8;X4Y9=^olZn`kpT0%GAk}fG=0e1h0`z6Y7!; z)B?N0t@n9ao|~RdE>{uDTCPJ(U+R$lR#$56NZ0y%V||0YZ0sYwk<#;3u37?5$}=rx zv~6Cf9h%HZgO+zQs+FoxmaF5{if1pW)MR~)Huu>x-lkSYjhvbe{43`_#7;GkGg2Va zThb4aAIEDz!>lHb|K)WgwapUF(HLsNasQbZ3{EHeq}hv0b-k!y7?qz|;T72n@e-cC zg6M7Htx9C@#(=l2s5aoXZ}q)~3~2-e^;tjEmC}|pqmMSh5!XDlc(O^3mEN!kiS^sC zF%LDiY2!FIHf)aA#*=Qa<>yJ%@?&hJqx>4QnPvw=dcK=waprqTz`2tNW=EVkv14Zf z>=+`kl*ULVw#*-rB>IHmA+!(P@$Ra6Gl#0NBKXDo~AJ-O|0!bG7(2mkrOei`?dZTW7l`eXN z_97kHO5E6O+FiMzsNsAbXWmR>G#EOxEl}h8kFVbl#{{eN3hnN?hq9cROH5g(QyDFj zIl4vea8B_+p?3($GOxvOvL^o8w697dOH*O%ZtNb(yhwWL{*1t{Cpe~@T)3k|gAQg( zm9ebULT9pqz#mT1E14NM*=WMvcVM}(F6LWa;)fdvu4b~+v5+hf3KsPn>_t_FSZekY zlU%FWTG?AG_u-MIP~{*ovN?Fo2=gf;9*u|~{ww0`5VF&9k5vA$!bq!pkxAVwVtH@A z;J(rlM{U|B&g8f|n!GuQ@p-emKRU#BQdbc0yoEnALWpBS;_i)ps3hLkYH@>)-?!FS zgEiJ(Qpq7?*^P_2teml$C#AbrW-2ernR{B4-Lfj4{wIsn*gV-3(B(;7ECOSCyO25j*hSwn*L3^gZ4FS3u0xdbZAF0lbRwc;zZ7eoL3t^@D2 zoPv3TfJ^nl0p}jaQ~W4n6w+iDE}vwaLRL0pjKgC$WJCZTHf0ogd_(55ZGSw7w)6xC z-aXnHofOwn+sSh_X5dC>W7SqEDBOi zg%nvDa4$_mB4l9zSAp-d z&i_Yn;U1Jzh3$wMyJMg_wiF+`lj0Lh6llf9a>O`x!Z^<-4600`&5{t2V5rg9I~k&% DNWPkJ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationOverline.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationOverline.pdf new file mode 100644 index 0000000000000000000000000000000000000000..994ffe8e2cab08d1b31d95f5d38145def3895f67 GIT binary patch literal 1511 zcmc&!%~IPi5WedvbjgrRC$S`3vfW`alOIBv0!b53=?rkNV<|O*Esz}s`bNF@deAM{<k=A1PvM%1nb)bt%7FCIDxT$j@(=6`m`*Q-nuFo;$@(T*-L_UpAX>^<8+J$Yl9Wl<46`La2r8b}b|egn~zX2dgOS6f4U? zT*cRVu`zZx#sj!ymFZ#_SF$;L%?R@-BQ6bzPxve1?h&%ra!z#mvcbgYbUBx%nMLxx z`ho}ANE~)(hqPy>y~*s&IKmgr-r?jJ-$_$K!iyIE%m^WEn-ceK%tI;hq0!45eEPn% z!74Ub`*A5pP-Q2|a#^;gI*$wIpqT44D;CaKR`iN8d-|U(lgie~mVmBK$2xB!+a}Z{ z8|Wo;g*tDuv^=*xonEdzR<+!?*uK;*{hhAV+~LCcb7KP=d)3%Scq47{b*`EMPt3C| zCAe*0z#Tl#Q3IEE3v9HmfR=0Z`UKreEVWtx20LWWVB1nzGE!_C@UM`6;W{=FouLAN z-lBd4@F+|bj#P~suH|<)34ggq|Rv5IhV$k}xHx@wt?z@UH$|z40H(^0S-6W7C;6gI)N#!L>c%h)KKkxp31eeZH xp)|JJY3fXY<=C=&>ddlFuuNbI8>{Wow#%jce7T^qicPg5L?~ddHx9-l^b-)3n+gB` literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationUnderline.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextDecorationUnderline.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8b5f6ee18f0e2a1cef825ca79a3ef9341196c5b GIT binary patch literal 1512 zcmc&!&2rN)5WedvbjdUsCb1-2md$iB(EcE8=$WHj#5oN^?2TcV`5CUBNNs)a3zMh{0)IG(FI7^*$wm|Qz7NZZOkQkxiSDlzxSFee-$JrLC|ERauoqPmVyQWl zwY<{vwX(Zb9>OE*T$dwRtM=$6Bg~_WxHKe!iWkJ)A!MiH9O?9Vg^AJWB2lKDN9wNr zf`{5D9QJ6BbZ5tVliBN&2%oq2UQG`1tuhq^Jn!Joj1bbbA@Sa|xvvy{W%S}2AHVOc zvHEMQ16iptWZ8-GLRHkpT-!X^6wu}FSmU*4TZATM zL%o2iQ0GmaR%f=R(~FhGGM8%;TbIUUuvL|YJKT5vT-d<+UKaKN-dLMr6|14ZBlB!Y z3GUhta0e#^YT@d3j*Zqe&~kOX+TrdwmfEO)gB`k0VB1t#GE!^{@UM`6;W{=7ouU$e z-k?DQ@F;W@jvKkuI1_0Y(13>-%TmdGR|Qlto^q-ZLYPnDFwBG>N)d#VWP!&e z^;1t}%FRTQQjtn38BbV7gzz${vLp$Fo4F|s;~)TqERbp7Nk%HTKgws^b?V& BpK1UA literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextLength.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textTextLength.pdf new file mode 100644 index 0000000000000000000000000000000000000000..83fb9a37b624d111a74794e8533725bce373458b GIT binary patch literal 1505 zcmc&!OK#gR5Z&_>+!(P@*di%WpCT~ePuvF0$F+r~K#~O|QI3L0Oei@>dZTW7l`eXN z_97k1O4PV%+FiMzsNsAbXWmR_KArXHz(bwyKfZoL922afOSHRd9mrx;U0}+F!?My+ z065@Wd)p#Z*+XJAKUvb0{M=4TwkiD`M{uveUB;Rr0dJT&rXqOWn;vc~^bG z6Qv~%26RCB%cIeJ`Sv)(XWh}8`2oI_x`cpdJ^YywLi#2o9$oAEQsOsSt*`OXhhB@- zZLy9;DQA#lE6j3P_7^G_g|%12D#?nKb&?gMqRbxum+Po9c`_-W^==vC*0ZTWld_3g zLs6*pE=$T&Q_;ow#-h$;YhudMn2fiJ(h!Gp>(6ENjqAFs59nq}=bKOs0Ul{*DoSwQ zd_0ch9CdJcyTV$j3Mjd`-RyAp5<^YUzkm+t6VN74hKLlK?Efp^mgZPXbb<0fo;>s=8jMN#En?$(I_G=fkWU&N$d+QW9bD6bzD1gY+pJyaeQC0gmRHG zFQqYaJf9Fyic%(`DBvj-OeC?*C3lI#Jl_pCc=F@e5i+(#;!+VMcI@!s|3`3c?H8%S uW-=|T1#lcFVUEk}6ATjQz)n3``ev~7pAHsORzg=bAp)18PG|3UhJFG~be-z} literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpaceNoWrap.pdf b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/cmp_textWhiteSpaceNoWrap.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d45f367de72071472e07404bb624ecceae4dcdb0 GIT binary patch literal 1542 zcmc&!%}(1u5WeqI%q1dGm3Y_odU1s!g@m-I{G`Dum4L(A-UK7;4QmHN->8?qN)LU5 z_C-3I7*bM7d+RE4?D_q6=9_7Z2E#V%2-5iesVv=-x=b@A7(eO*+ls7kQm#?GNiGr6l5XB0m@NIwM6{}1a16ir&;I&I#pSjdyAr*|iqTUvzTP^2Mr!O0fj85l?GR-Vfi|PyX zwNVguSckSxj(Ve$x5p8jH+yeJ2XL!Qi3!hJ@Y$u5wrxu2&CGqN;EmDq8616Rt+57c zth=&QL#(kAWw|QbW1Y*w*((yAX2sMw&5B-8W{=+|^SH8gvL#^4r(>Phk!=s^lJ)f* zo5GxTSz4aij*c%@9?M#;U2I!wm)*^#)WqT3`Ey&hZRllNAJ7f8$ycdr0zA^rc9cTf z{s|6AP8v|&PQhqhAthJZ)f06uG1Mmg3uxwwC#Y?qEE5^n^8YL1HP68)a!Lxsc|&$1 zM8|NTAez*$@lvA0fpLg(V!bGsDQQNRSqb=)1*nD0XV(huE)^2#?lP+slrxzqt1ol~ zcSg=;D($qQE3y~iWIi{W3!^3&KP1Sr`ar{Tr2PS$?Rae4^IVT9!Q(jC_We-${zS-- z%880y8mEFQ?nxOYR>VadhB(G7bcJL>avCOSfOmIOA!3@ODdUs|ffS)1Pk7)9AvjAC zp9d4=C2{Ecf#)Ssg&f^|Kk5E|1Q*VJG0|Yx*Vq~3Ab=f!v2&7r!fk_N+E}iiw%tDM Wr`v~=l{D3o5Mj7Y8jZcfk?2rzo9-L!WnX0v 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textBaselineShift.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textBaselineShift.svg new file mode 100644 index 0000000000..518faf56f6 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textBaselineShift.svg @@ -0,0 +1,7 @@ + + BaseLine + + Super + + Sub + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textCombinedAttributes.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textCombinedAttributes.svg new file mode 100644 index 0000000000..bf9768394e --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textCombinedAttributes.svg @@ -0,0 +1,8 @@ + + BaseText + + + CombinedText + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textComplexStrokeDasharray.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textComplexStrokeDasharray.svg new file mode 100644 index 0000000000..659a0f7f6d --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textComplexStrokeDasharray.svg @@ -0,0 +1,9 @@ + + + AbsoluteComplex + + + + PercentComplex + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textDxDyAttributes.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textDxDyAttributes.svg new file mode 100644 index 0000000000..0e08b097ea --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textDxDyAttributes.svg @@ -0,0 +1,4 @@ + + BaseText + ShiftedText + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textLengthAdjust.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textLengthAdjust.svg new file mode 100644 index 0000000000..f68642fceb --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textLengthAdjust.svg @@ -0,0 +1,16 @@ + + + + Stretched using spacing only. + + + Stretched using spacing and glyphs. + + + Shrunk using spacing only. + + + Shrunk using spacing and glyphs. + + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textRotate.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textRotate.svg new file mode 100644 index 0000000000..aaa1af42c1 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textRotate.svg @@ -0,0 +1,3 @@ + + RotatedText + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textShrunkTextLength.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textShrunkTextLength.svg new file mode 100644 index 0000000000..7b9ce06bdb --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textShrunkTextLength.svg @@ -0,0 +1,11 @@ + + + TextWithLength + + + TextWithLength + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStretchedTextLength.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStretchedTextLength.svg new file mode 100644 index 0000000000..8043f40c10 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStretchedTextLength.svg @@ -0,0 +1,11 @@ + + + TextWithLength + + + TextWithLength + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStrokeDasharray.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStrokeDasharray.svg new file mode 100644 index 0000000000..40afcfd245 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textStrokeDasharray.svg @@ -0,0 +1,9 @@ + + + AbsoluteDash + + + + PercentDash + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationLineThrough.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationLineThrough.svg new file mode 100644 index 0000000000..5f2cebd850 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationLineThrough.svg @@ -0,0 +1,3 @@ + + Struck-through text + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationOverline.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationOverline.svg new file mode 100644 index 0000000000..543f820623 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationOverline.svg @@ -0,0 +1,3 @@ + + Overlined text + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationUnderline.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationUnderline.svg new file mode 100644 index 0000000000..a70cd5a2ea --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextDecorationUnderline.svg @@ -0,0 +1,3 @@ + + Underlined text + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextLength.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextLength.svg new file mode 100644 index 0000000000..1b581d1c2b --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textTextLength.svg @@ -0,0 +1,5 @@ + + + TextWithLength + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNoWrap.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNoWrap.svg new file mode 100644 index 0000000000..e5a6e80998 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNoWrap.svg @@ -0,0 +1,5 @@ + + + This is an example where white space is not wrapped. + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNormal.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNormal.svg new file mode 100644 index 0000000000..14d4ee71e0 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpaceNormal.svg @@ -0,0 +1,5 @@ + + + This is an example where white space is normalized. + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePre.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePre.svg new file mode 100644 index 0000000000..7c3527c194 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePre.svg @@ -0,0 +1,5 @@ + + + This is an example where white space is preserved. + + \ No newline at end of file diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreLine.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreLine.svg new file mode 100644 index 0000000000..5d6d7db30e --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreLine.svg @@ -0,0 +1,7 @@ + + + This is an example where white + + space and line breaks are preserved. + + diff --git a/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreWrap.svg b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreWrap.svg new file mode 100644 index 0000000000..72993e5175 --- /dev/null +++ b/itext.tests/itext.svg.tests/resources/itext/svg/renderers/impl/TextSvgBranchRendererIntegrationTest/textWhiteSpacePreWrap.svg @@ -0,0 +1,5 @@ + + + This is an example where white space is preserved and wrapped. + + \ No newline at end of file diff --git a/port-hash b/port-hash index a990138df6..c71e7f1780 100644 --- a/port-hash +++ b/port-hash @@ -1 +1 @@ -b5826c03f51a9f2c9d18bda58b687ec2f97e32b2 +89443ed1022b6ee65d22619f3fcfe56d673d8715