Skip to content

Commit

Permalink
[RELEASE] iText 7 Core - 7.1.13
Browse files Browse the repository at this point in the history
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
  • Loading branch information
iText-CI committed Oct 8, 2020
2 parents 8660b83 + e89e60e commit 693cb07
Show file tree
Hide file tree
Showing 633 changed files with 25,385 additions and 2,811 deletions.
218 changes: 4 additions & 214 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,218 +1,8 @@
#!/usr/bin/env groovy
@Library('pipeline-library')_

def vars = setBranchDependentVars(env.BRANCH_NAME)

pipeline {

agent { label 'windows' }

options {
ansiColor('xterm')
buildDiscarder(
logRotator(
numToKeepStr: vars.buildNumToKeep,
artifactNumToKeepStr: vars.buildArtifactNumToKeep,
daysToKeepStr: vars.buildDaysToKeep,
artifactDaysToKeepStr: vars.buildArtifactDaysToKeep
)
)
parallelsAlwaysFailFast()
retry(1)
skipStagesAfterUnstable()
timeout(time: 60, unit: 'MINUTES')
timestamps()
}

triggers {
cron(vars.schedule)
}

stages {
stage('Abort possible previous builds') {
steps {
script {
abortPreviousBuilds()
}
}
}
stage('Clean workspace') {
options {
timeout(time: 5, unit: 'MINUTES')
}
steps {
cleanWs deleteDirs: true, patterns: [
[pattern: 'packages', type: 'INCLUDE'],
[pattern: 'global-packages', type: 'INCLUDE'],
[pattern: 'tmp/NuGetScratch', type: 'INCLUDE'],
[pattern: 'http-cache', type: 'INCLUDE'],
[pattern: 'plugins-cache', type: 'INCLUDE'],
[pattern: '**/obj', type: 'INCLUDE'],
[pattern: '**/bin', type: 'INCLUDE']
]
}
}
stage('Compile') {
options {
timeout(time: 20, unit: 'MINUTES')
}
steps {
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}"]) {
bat "\"${env.NuGet}\" restore iTextCore.netstandard.sln"
bat "dotnet restore iTextCore.netstandard.sln"
bat "dotnet build iTextCore.netstandard.sln --configuration Release --source ${env.WORKSPACE}/packages"
script {
createPackAllFile(findFiles(glob: '**/*.nuspec'))
load 'packAll.groovy'
}
}
}
}
stage('Run Tests') {
options {
timeout(time: 60, unit: 'MINUTES')
}
steps {
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}"]) {
script {
createRunTestDllsFile(findFiles(glob: '**/itext.*.tests.dll'))
load 'runTestDlls.groovy'
createRunTestCsProjsFile(findFiles(glob: '**/itext.*.tests.netstandard.csproj'))
load 'runTestCsProjs.groovy'
}
}
}
}
stage('Artifactory Deploy') {
options {
timeout(time: 5, unit: 'MINUTES')
}
when {
anyOf {
branch "master"
branch "develop"
}
}
steps {
script {
getAndConfigureJFrogCLI()
findFiles(glob: '*.nupkg').each { item ->
upload(item)
}
}
}
}
stage('Branch Artifactory Deploy') {
options {
timeout(time: 5, unit: 'MINUTES')
}
when {
not {
anyOf {
branch "master"
branch "develop"
}
}
}
steps {
script {
if (env.GIT_URL) {
getAndConfigureJFrogCLI()
repoName = ("${env.GIT_URL}" =~ /(.*\/)(.*)(\.git)/)[ 0 ][ 2 ]
findFiles(glob: '*.nupkg').each { item ->
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}\""
}
}
}
}
}
stage('Archive Artifacts') {
options {
timeout(time: 5, unit: 'MINUTES')
}
steps {
archiveArtifacts allowEmptyArchive: true, artifacts: '*.nupkg'
}
}
}

post {
always {
echo 'One way or another, I have finished \uD83E\uDD16'
}
success {
echo 'I succeeeded! \u263A'
cleanWs deleteDirs: true
}
unstable {
echo 'I am unstable \uD83D\uDE2E'
}
failure {
echo 'I failed \uD83D\uDCA9'
}
changed {
echo 'Things were different before... \uD83E\uDD14'
}
fixed {
script {
if (vars.notifySlack) {
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - Back to normal")
}
}
}
regression {
script {
if (vars.notifySlack) {
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - First failure")
}
}
}
}

}

@NonCPS // has to be NonCPS or the build breaks on the call to .each
def createPackAllFile(list) {
// creates file because the bat command brakes the loop
def cmd = ''
list.each { item ->
if (!item.path.contains("packages")) {
cmd = cmd + "bat '\"${env.NuGet.replace('\\','\\\\')}\" pack \"${item.path.replace('\\','\\\\')}\"'\n"
}
}
writeFile file: 'packAll.groovy', text: cmd
}

@NonCPS // has to be NonCPS or the build breaks on the call to .each
def createRunTestDllsFile(list) {
// creates file because the bat command brakes the loop
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
def nunit = "${env.'Nunit3-console'.replace('\\','\\\\')}"
def cmd = ''
list.each { item ->
if (!item.path.contains("netcoreapp1.0") && !item.path.contains("obj")) {
cmd = cmd + "bat '\"${nunit}\" \"${ws}\\\\${item.path.replace('\\','\\\\')}\" --result=${item.name}-TestResult.xml'\n"
}
}
writeFile file: 'runTestDlls.groovy', text: cmd
}

@NonCPS // has to be NonCPS or the build breaks on the call to .each
def createRunTestCsProjsFile(list) {
// creates file because the bat command brakes the loop
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
def cmd = ''
list.each { item ->
cmd = cmd + "bat 'dotnet test ${ws}\\\\${item.path.replace('\\','\\\\')} --framework netcoreapp1.0 --configuration Release --no-build --logger \"trx;LogFileName=results.trx\"'\n"
}
writeFile file: 'runTestCsProjs.groovy', text: cmd
}

@NonCPS
def upload(item) {
def itemArray = (item =~ /(.*?)(\.[0-9]*\.[0-9]*\.[0-9]*(-SNAPSHOT)?\.nupkg)/)
def dir = itemArray[ 0 ][ 1 ]
sh "./jfrog rt u \"${item.path}\" nuget/${dir}/ --flat=false --build-name="${env.BRANCH_NAME}" --build-number=${env.BUILD_NUMBER}"
}

def repoName = "itextcore"
def dependencyRegex = ""
def solutionFile = "iTextCore.netstandard.sln"

automaticDotnetBuild(repoName, dependencyRegex, solutionFile)
2 changes: 1 addition & 1 deletion doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "iText 7 7.1.12 API"
PROJECT_NAME = "iText 7 7.1.13 API"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand Down
14 changes: 14 additions & 0 deletions iTextCore.netstandard.sln
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "itext.svg.netstandard", "it
EndProject
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}"
EndProject
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}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -307,6 +309,18 @@ Global
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x64.Build.0 = Release|Any CPU
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x86.ActiveCfg = Release|Any CPU
{9F61F451-EC4F-4D1A-B339-CEDD5FA4257C}.Release|x86.Build.0 = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x64.ActiveCfg = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x64.Build.0 = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x86.ActiveCfg = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Debug|x86.Build.0 = Debug|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|Any CPU.Build.0 = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x64.ActiveCfg = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x64.Build.0 = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x86.ActiveCfg = Release|Any CPU
{46C393D2-BFAB-473A-AF06-E5FB586493FD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
6 changes: 3 additions & 3 deletions itext.tests/itext.barcodes.tests/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@

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

[assembly: AssemblyVersion("7.1.12.0")]
[assembly: AssemblyFileVersion("7.1.12.0")]
[assembly: AssemblyInformationalVersion("7.1.12")]
[assembly: AssemblyVersion("7.1.13.0")]
[assembly: AssemblyFileVersion("7.1.13.0")]
[assembly: AssemblyInformationalVersion("7.1.13")]

#if !NETSTANDARD1_6
[assembly: NUnit.Framework.Timeout(300000)]
Expand Down
64 changes: 64 additions & 0 deletions itext.tests/itext.barcodes.tests/itext/barcodes/BarcodeEANTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,69 @@ public class BarcodeEANTest : ExtendedITextTest {
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
+ "cmp_" + filename, destinationFolder, "diff_"));
}

[NUnit.Framework.Test]
public virtual void PlaceBarcodeUPCATest() {
String filename = "placeBarcodeUPCATest.pdf";
PdfWriter writer = new PdfWriter(destinationFolder + filename);
PdfDocument document = new PdfDocument(writer);
PdfPage page = document.AddNewPage();
PdfCanvas canvas = new PdfCanvas(page);
Barcode1D barcode = new BarcodeEAN(document);
barcode.SetCodeType(BarcodeEAN.UPCA);
barcode.SetCode("012340000006");
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
document.Close();
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
+ "cmp_" + filename, destinationFolder, "diff_"));
}

[NUnit.Framework.Test]
public virtual void PlaceBarcodeUPCETest() {
String filename = "placeBarcodeUPCETest.pdf";
PdfWriter writer = new PdfWriter(destinationFolder + filename);
PdfDocument document = new PdfDocument(writer);
PdfPage page = document.AddNewPage();
PdfCanvas canvas = new PdfCanvas(page);
Barcode1D barcode = new BarcodeEAN(document);
barcode.SetCodeType(BarcodeEAN.UPCE);
barcode.SetCode("03456781");
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
document.Close();
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
+ "cmp_" + filename, destinationFolder, "diff_"));
}

[NUnit.Framework.Test]
public virtual void PlaceBarcodeSUPP2Test() {
String filename = "placeBarcodeSUPP2Test.pdf";
PdfWriter writer = new PdfWriter(destinationFolder + filename);
PdfDocument document = new PdfDocument(writer);
PdfPage page = document.AddNewPage();
PdfCanvas canvas = new PdfCanvas(page);
Barcode1D barcode = new BarcodeEAN(document);
barcode.SetCodeType(BarcodeEAN.SUPP2);
barcode.SetCode("03456781");
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
document.Close();
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
+ "cmp_" + filename, destinationFolder, "diff_"));
}

[NUnit.Framework.Test]
public virtual void PlaceBarcodeSUPP5Test() {
String filename = "placeBarcodeSUPP5Test.pdf";
PdfWriter writer = new PdfWriter(destinationFolder + filename);
PdfDocument document = new PdfDocument(writer);
PdfPage page = document.AddNewPage();
PdfCanvas canvas = new PdfCanvas(page);
Barcode1D barcode = new BarcodeEAN(document);
barcode.SetCodeType(BarcodeEAN.SUPP5);
barcode.SetCode("55999");
barcode.PlaceBarcode(canvas, ColorConstants.BLACK, ColorConstants.BLACK);
document.Close();
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + filename, sourceFolder
+ "cmp_" + filename, destinationFolder, "diff_"));
}
}
}

0 comments on commit 693cb07

Please sign in to comment.