Skip to content

Commit 693cb07

Browse files
committed
[RELEASE] iText 7 Core - 7.1.13
https://github.com/itext/itext7-dotnet/releases/tag/7.1.13 * release/7.1.13: [RELEASE] 7.1.13-SNAPSHOT -> 7.1.13 Verify TODO references, add TextWritingTest#leadingAndFloatInTextTest Add support of background-clip and background-origin OTF: Support GposLookupType7 format (subtable format 2) OTF: Support GposLookupType1 format Remove ToDo remark If one glyph is substituted to many glyphs, actual text should be distributed Add outlines with invalid parent links test Add missing copyright headers Add ClipperBridgeTest Improve float arithmetic isIdentityMatrix method Add missing copyright headers OpenType: Fix skipping glyphs for mark attachment type-specific lookup flags Add test on bug in wordWasSplitAndItWillFitOntoNextLine Implement supporting background-repeat CSS property Add background size support Add integration tests for missing form fields border styles Remove useless TODO If anchor delta is not zero, follow special xPlacement logic even if it's 0 Improve processing of marks in GposLookupType4 Add test to be sure that PdfXFormObject and PdfImageObject work correctly Add setter for background-image and List of background-images Create unit tests for annot.PdfTarget class Refactor kernel/colors/Color hashCode() method Improve coverage for kernel/colors/Color Add SVG symbol processing by adding SymbolSvgNodeRenderer Fix PdfSignatureBuildProperties and PdfSigner javadoc warnings Add missing copyright headers Improve coverage for kernel/font/PdfType0Font Add missing copyright headers Add PdfReaderCustomFilterTest#encryptedDocumentCustomFilterStandartTest Add missing copyright headers Add PdfSimpleFontTest Add missing copyright headers Implementation to support background-position Background blend mode implementation Support myanmar word wrapping. Minor refactoring Update port-hash Improve coverage for kernel/utils/PageRange Make actual text's size correspond to the number of glyphs Fix adding PdfFormXObject to canvas through PdfCanvas Add missing copyright headers Override PdfTrueTypeFont#isBuiltInont Fix reading /TrueType fonts with the underlying standard base font from PDFs Add tests for the incorrect placement within container Add test for converting page number to page indRef in /Dest of outlines Create unit-tests for several classes in signatures module Add description for params in javadoc Add tests of dSafer flag for ghostScript Add PointTest Improve coverage for some com/itextpdf/kernel/pdf/annot classes Fix some JavaDocs in com\itextpdf\signatures package Update port-hash Add a test on wrapping a choice field option into several lines Improve coverage for some com/itextpdf/kernel/pdf/canvas/parser/clipper classes Provided a comment for UrlUtil class Support advanced OCG copying Support basic copying OCGs present in content streams of pages Extract SvgCssUtils#isStyleSheetLink into SXP and deprecate the old method Make test classes extend ExtendedITextTest Add missing copyright headers Added support of multiple backgrounds Fix javadoc warnings Add new tests for specific float and indent scenario Add missing copyright headers Add TextRendererIntegrationTest#trimFirstJapaneseCharactersTest Add missing copyright headers Improve CssPseudoElementUtil and CssPseudoElementNode coverage Add missing copyright headers Add Armenian-, Georgian- and RomanNumberingTest Removed duplicated test Fix average glyph bbox calculation for Type3 fonts Add tests for BarcodePDF417 Improve several kernel/crypto and kernel/events JavaDocs Cover BarcodeEAN with tests Add particular test cases for svg tag symbol Add tests for PdfAction Refactor duplicated code Improve com/itextpdf/kernel/geom/AffineTransform.java and LineSegement.java coverage Improve several JavaDocs in kernel module Add missing copyright headers Fixed bug when BMC operator was replaced with empty BDC. Add javadoc to describe the usage of MemoryLimitsAwareHandler Add test for absolute value for tabPosition Add unit tests for resource resolver PdfDictionaryTest updates Wrap words properly with preceding Image or inlineBlock XMP parsing XXE vulnerability fix Fix javadocs of io/image Fix LimitedInputStream reading methods and add new unit tests Improve memory limits aware handler Add missing copyright headers PdfA validation fixes Add missing copyright headers Added validator for default font css attributes Add missing copyright headers MSI barcode width formula was changed Fix javadocs BezierCurve test Add missing copyright headers Memory limits aware handlers refactoring Add new SimpleImageCacheTest#removingOrderFromCacheTest Add missing copyright headers Add test coverage for PdfWin and PdfActionOcgStateTest Update autoported files Add missing copyright headers Fixed bug when messages may be not equal if special characters present in the message Add missing copyright headers Add svg symbol tests Update ResourceResolverTest and add resource byte limit argument check Support for custom ResourceResolver Add javadocs Update autoported files Added try-catch block in parseAndProcess method to process possible exceptions in parsing InputStream Add missing copyright headers Support analogue of css object-fit property Change background image width and height calculation Fix javadoc Fix javadoc warnings Provide tests for get methods of RAFRandomAccessSource Use generalized Jenkinsfile in the pipeline-library Upgrade javadoc for collections package Update port-hash Fix several io module javadoc warnings Refactor createXfdfAnnotaion Add missing copyright headers Create filters for DCT and JPX decodes Update port-hash after release [RELEASE] Update dependency versions Update javadocs for TabStop class Inherit documentation with inheritDoc annotations rather than non-Javadoc comments Update autoported files Update autoported files Add test for smart mode copying of link annotations with goto actions Update autoported files Refactor PdfCanvasColorTest class according to code style Remove TODO from Color class and add makePatternColorTest Update autoported files Move pageCopyAsFormXObjectWithInheritedResourcesTest form samples internal Remove redundant comment Fix try-with-resources statement for autoporting Fix for loig cof counting of indirect objects Change logic of indirect objects counting Fixes per codereview. Add check for amount of indirect objects Update javadoc after forbidding @value tag Add missing copyright headers Add XfdfWriterUnitTest class, update ToDo remarks in XfdfWriterTest class Add ticket references to TODOs Remove a TODO comment from ActualTextIterator Update autoported files Add new TableTest#inheritHeaderPropsWhileMinMaxWidthCalculationsTest
2 parents 8660b83 + e89e60e commit 693cb07

File tree

633 files changed

+25385
-2811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

633 files changed

+25385
-2811
lines changed

Jenkinsfile

Lines changed: 4 additions & 214 deletions
Original file line numberDiff line numberDiff line change
@@ -1,218 +1,8 @@
11
#!/usr/bin/env groovy
22
@Library('pipeline-library')_
33

4-
def vars = setBranchDependentVars(env.BRANCH_NAME)
5-
6-
pipeline {
7-
8-
agent { label 'windows' }
9-
10-
options {
11-
ansiColor('xterm')
12-
buildDiscarder(
13-
logRotator(
14-
numToKeepStr: vars.buildNumToKeep,
15-
artifactNumToKeepStr: vars.buildArtifactNumToKeep,
16-
daysToKeepStr: vars.buildDaysToKeep,
17-
artifactDaysToKeepStr: vars.buildArtifactDaysToKeep
18-
)
19-
)
20-
parallelsAlwaysFailFast()
21-
retry(1)
22-
skipStagesAfterUnstable()
23-
timeout(time: 60, unit: 'MINUTES')
24-
timestamps()
25-
}
26-
27-
triggers {
28-
cron(vars.schedule)
29-
}
30-
31-
stages {
32-
stage('Abort possible previous builds') {
33-
steps {
34-
script {
35-
abortPreviousBuilds()
36-
}
37-
}
38-
}
39-
stage('Clean workspace') {
40-
options {
41-
timeout(time: 5, unit: 'MINUTES')
42-
}
43-
steps {
44-
cleanWs deleteDirs: true, patterns: [
45-
[pattern: 'packages', type: 'INCLUDE'],
46-
[pattern: 'global-packages', type: 'INCLUDE'],
47-
[pattern: 'tmp/NuGetScratch', type: 'INCLUDE'],
48-
[pattern: 'http-cache', type: 'INCLUDE'],
49-
[pattern: 'plugins-cache', type: 'INCLUDE'],
50-
[pattern: '**/obj', type: 'INCLUDE'],
51-
[pattern: '**/bin', type: 'INCLUDE']
52-
]
53-
}
54-
}
55-
stage('Compile') {
56-
options {
57-
timeout(time: 20, unit: 'MINUTES')
58-
}
59-
steps {
60-
withEnv(["NUGET_PACKAGES=${env.WORKSPACE}/global-packages", "temp=${env.WORKSPACE}/tmp/NuGetScratch", "NUGET_HTTP_CACHE_PATH=${env.WORKSPACE}/http-cache", "NUGET_PLUGINS_CACHE_PATH=${env.WORKSPACE}/plugins-cache", "gsExec=${gsExec}", "compareExec=${compareExec}"]) {
61-
bat "\"${env.NuGet}\" restore iTextCore.netstandard.sln"
62-
bat "dotnet restore iTextCore.netstandard.sln"
63-
bat "dotnet build iTextCore.netstandard.sln --configuration Release --source ${env.WORKSPACE}/packages"
64-
script {
65-
createPackAllFile(findFiles(glob: '**/*.nuspec'))
66-
load 'packAll.groovy'
67-
}
68-
}
69-
}
70-
}
71-
stage('Run Tests') {
72-
options {
73-
timeout(time: 60, unit: 'MINUTES')
74-
}
75-
steps {
76-
withEnv(["NUGET_PACKAGES=${env.WORKSPACE}/global-packages", "temp=${env.WORKSPACE}/tmp/NuGetScratch", "NUGET_HTTP_CACHE_PATH=${env.WORKSPACE}/http-cache", "NUGET_PLUGINS_CACHE_PATH=${env.WORKSPACE}/plugins-cache", "gsExec=${gsExec}", "compareExec=${compareExec}"]) {
77-
script {
78-
createRunTestDllsFile(findFiles(glob: '**/itext.*.tests.dll'))
79-
load 'runTestDlls.groovy'
80-
createRunTestCsProjsFile(findFiles(glob: '**/itext.*.tests.netstandard.csproj'))
81-
load 'runTestCsProjs.groovy'
82-
}
83-
}
84-
}
85-
}
86-
stage('Artifactory Deploy') {
87-
options {
88-
timeout(time: 5, unit: 'MINUTES')
89-
}
90-
when {
91-
anyOf {
92-
branch "master"
93-
branch "develop"
94-
}
95-
}
96-
steps {
97-
script {
98-
getAndConfigureJFrogCLI()
99-
findFiles(glob: '*.nupkg').each { item ->
100-
upload(item)
101-
}
102-
}
103-
}
104-
}
105-
stage('Branch Artifactory Deploy') {
106-
options {
107-
timeout(time: 5, unit: 'MINUTES')
108-
}
109-
when {
110-
not {
111-
anyOf {
112-
branch "master"
113-
branch "develop"
114-
}
115-
}
116-
}
117-
steps {
118-
script {
119-
if (env.GIT_URL) {
120-
getAndConfigureJFrogCLI()
121-
repoName = ("${env.GIT_URL}" =~ /(.*\/)(.*)(\.git)/)[ 0 ][ 2 ]
122-
findFiles(glob: '*.nupkg').each { item ->
123-
sh "./jfrog rt u \"${item.path}\" branch-artifacts/${env.BRANCH_NAME}/${repoName}/dotnet/ --recursive=false --build-name ${env.BRANCH_NAME} --build-number ${env.BUILD_NUMBER} --props \"vcs.revision=${env.GIT_COMMIT};repo.name=${repoName}\""
124-
}
125-
}
126-
}
127-
}
128-
}
129-
stage('Archive Artifacts') {
130-
options {
131-
timeout(time: 5, unit: 'MINUTES')
132-
}
133-
steps {
134-
archiveArtifacts allowEmptyArchive: true, artifacts: '*.nupkg'
135-
}
136-
}
137-
}
138-
139-
post {
140-
always {
141-
echo 'One way or another, I have finished \uD83E\uDD16'
142-
}
143-
success {
144-
echo 'I succeeeded! \u263A'
145-
cleanWs deleteDirs: true
146-
}
147-
unstable {
148-
echo 'I am unstable \uD83D\uDE2E'
149-
}
150-
failure {
151-
echo 'I failed \uD83D\uDCA9'
152-
}
153-
changed {
154-
echo 'Things were different before... \uD83E\uDD14'
155-
}
156-
fixed {
157-
script {
158-
if (vars.notifySlack) {
159-
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - Back to normal")
160-
}
161-
}
162-
}
163-
regression {
164-
script {
165-
if (vars.notifySlack) {
166-
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - First failure")
167-
}
168-
}
169-
}
170-
}
171-
172-
}
173-
174-
@NonCPS // has to be NonCPS or the build breaks on the call to .each
175-
def createPackAllFile(list) {
176-
// creates file because the bat command brakes the loop
177-
def cmd = ''
178-
list.each { item ->
179-
if (!item.path.contains("packages")) {
180-
cmd = cmd + "bat '\"${env.NuGet.replace('\\','\\\\')}\" pack \"${item.path.replace('\\','\\\\')}\"'\n"
181-
}
182-
}
183-
writeFile file: 'packAll.groovy', text: cmd
184-
}
185-
186-
@NonCPS // has to be NonCPS or the build breaks on the call to .each
187-
def createRunTestDllsFile(list) {
188-
// creates file because the bat command brakes the loop
189-
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
190-
def nunit = "${env.'Nunit3-console'.replace('\\','\\\\')}"
191-
def cmd = ''
192-
list.each { item ->
193-
if (!item.path.contains("netcoreapp1.0") && !item.path.contains("obj")) {
194-
cmd = cmd + "bat '\"${nunit}\" \"${ws}\\\\${item.path.replace('\\','\\\\')}\" --result=${item.name}-TestResult.xml'\n"
195-
}
196-
}
197-
writeFile file: 'runTestDlls.groovy', text: cmd
198-
}
199-
200-
@NonCPS // has to be NonCPS or the build breaks on the call to .each
201-
def createRunTestCsProjsFile(list) {
202-
// creates file because the bat command brakes the loop
203-
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
204-
def cmd = ''
205-
list.each { item ->
206-
cmd = cmd + "bat 'dotnet test ${ws}\\\\${item.path.replace('\\','\\\\')} --framework netcoreapp1.0 --configuration Release --no-build --logger \"trx;LogFileName=results.trx\"'\n"
207-
}
208-
writeFile file: 'runTestCsProjs.groovy', text: cmd
209-
}
210-
211-
@NonCPS
212-
def upload(item) {
213-
def itemArray = (item =~ /(.*?)(\.[0-9]*\.[0-9]*\.[0-9]*(-SNAPSHOT)?\.nupkg)/)
214-
def dir = itemArray[ 0 ][ 1 ]
215-
sh "./jfrog rt u \"${item.path}\" nuget/${dir}/ --flat=false --build-name="${env.BRANCH_NAME}" --build-number=${env.BUILD_NUMBER}"
216-
}
217-
4+
def repoName = "itextcore"
5+
def dependencyRegex = ""
6+
def solutionFile = "iTextCore.netstandard.sln"
2187

8+
automaticDotnetBuild(repoName, dependencyRegex, solutionFile)

doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
3232
# title of most generated pages and in a few other places.
3333
# The default value is: My Project.
3434

35-
PROJECT_NAME = "iText 7 7.1.12 API"
35+
PROJECT_NAME = "iText 7 7.1.13 API"
3636

3737
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
3838
# could be handy for archiving the generated documentation or if some version

iTextCore.netstandard.sln

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "itext.svg.netstandard", "it
4545
EndProject
4646
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "itext.svg.tests.netstandard", "itext.tests\itext.svg.tests\itext.svg.tests.netstandard.csproj", "{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}"
4747
EndProject
48+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "itext.pdftest.tests.netstandard", "itext.tests\itext.pdftest.tests\itext.pdftest.tests.netstandard.csproj", "{46C393D2-BFAB-473A-AF06-E5FB586493FD}"
49+
EndProject
4850
Global
4951
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5052
Debug|Any CPU = Debug|Any CPU
@@ -307,6 +309,18 @@ Global
307309
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x64.Build.0 = Release|Any CPU
308310
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x86.ActiveCfg = Release|Any CPU
309311
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x86.Build.0 = Release|Any CPU
312+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
313+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
314+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x64.ActiveCfg = Debug|Any CPU
315+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x64.Build.0 = Debug|Any CPU
316+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x86.ActiveCfg = Debug|Any CPU
317+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x86.Build.0 = Debug|Any CPU
318+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
319+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|Any CPU.Build.0 = Release|Any CPU
320+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x64.ActiveCfg = Release|Any CPU
321+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x64.Build.0 = Release|Any CPU
322+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x86.ActiveCfg = Release|Any CPU
323+
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x86.Build.0 = Release|Any CPU
310324
EndGlobalSection
311325
GlobalSection(SolutionProperties) = preSolution
312326
HideSolutionNode = FALSE

itext.tests/itext.barcodes.tests/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
[assembly: Guid("d015a3aa-613c-45d9-b908-7d47c4b613af")]
1616

17-
[assembly: AssemblyVersion("7.1.12.0")]
18-
[assembly: AssemblyFileVersion("7.1.12.0")]
19-
[assembly: AssemblyInformationalVersion("7.1.12")]
17+
[assembly: AssemblyVersion("7.1.13.0")]
18+
[assembly: AssemblyFileVersion("7.1.13.0")]
19+
[assembly: AssemblyInformationalVersion("7.1.13")]
2020

2121
#if !NETSTANDARD1_6
2222
[assembly: NUnit.Framework.Timeout(300000)]

itext.tests/itext.barcodes.tests/itext/barcodes/BarcodeEANTest.cs

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,5 +114,69 @@ public virtual void Barcode03Test() {
114114
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
115115
+ "cmp_" + filename, destinationFolder, "diff_"));
116116
}
117+
118+
[NUnit.Framework.Test]
119+
public virtual void PlaceBarcodeUPCATest() {
120+
String filename = "placeBarcodeUPCATest.pdf";
121+
PdfWriter writer = new PdfWriter(destinationFolder + filename);
122+
PdfDocument document = new PdfDocument(writer);
123+
PdfPage page = document.AddNewPage();
124+
PdfCanvas canvas = new PdfCanvas(page);
125+
Barcode1D barcode = new BarcodeEAN(document);
126+
barcode.SetCodeType(BarcodeEAN.UPCA);
127+
barcode.SetCode("012340000006");
128+
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
129+
document.Close();
130+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
131+
+ "cmp_" + filename, destinationFolder, "diff_"));
132+
}
133+
134+
[NUnit.Framework.Test]
135+
public virtual void PlaceBarcodeUPCETest() {
136+
String filename = "placeBarcodeUPCETest.pdf";
137+
PdfWriter writer = new PdfWriter(destinationFolder + filename);
138+
PdfDocument document = new PdfDocument(writer);
139+
PdfPage page = document.AddNewPage();
140+
PdfCanvas canvas = new PdfCanvas(page);
141+
Barcode1D barcode = new BarcodeEAN(document);
142+
barcode.SetCodeType(BarcodeEAN.UPCE);
143+
barcode.SetCode("03456781");
144+
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
145+
document.Close();
146+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
147+
+ "cmp_" + filename, destinationFolder, "diff_"));
148+
}
149+
150+
[NUnit.Framework.Test]
151+
public virtual void PlaceBarcodeSUPP2Test() {
152+
String filename = "placeBarcodeSUPP2Test.pdf";
153+
PdfWriter writer = new PdfWriter(destinationFolder + filename);
154+
PdfDocument document = new PdfDocument(writer);
155+
PdfPage page = document.AddNewPage();
156+
PdfCanvas canvas = new PdfCanvas(page);
157+
Barcode1D barcode = new BarcodeEAN(document);
158+
barcode.SetCodeType(BarcodeEAN.SUPP2);
159+
barcode.SetCode("03456781");
160+
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
161+
document.Close();
162+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
163+
+ "cmp_" + filename, destinationFolder, "diff_"));
164+
}
165+
166+
[NUnit.Framework.Test]
167+
public virtual void PlaceBarcodeSUPP5Test() {
168+
String filename = "placeBarcodeSUPP5Test.pdf";
169+
PdfWriter writer = new PdfWriter(destinationFolder + filename);
170+
PdfDocument document = new PdfDocument(writer);
171+
PdfPage page = document.AddNewPage();
172+
PdfCanvas canvas = new PdfCanvas(page);
173+
Barcode1D barcode = new BarcodeEAN(document);
174+
barcode.SetCodeType(BarcodeEAN.SUPP5);
175+
barcode.SetCode("55999");
176+
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
177+
document.Close();
178+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
179+
+ "cmp_" + filename, destinationFolder, "diff_"));
180+
}
117181
}
118182
}

0 commit comments

Comments
 (0)