Skip to content

Commit edef710

Browse files
committed
[RELEASE] iText 7 pdfSweep - 2.0.3
https://github.com/itext/i7n-pdfsweep/releases/tag/2.0.3 * release/2.0.3: [RELEASE] 2.0.3-SNAPSHOT -> 2.0.3 Update copyright notes year Add missing copyright headers Generalize support of basic annotations redaction Make helper methods static in PdfCleanUpFilter class; reformat code Make sure text is removed if it has degenerate rectangle but is still in redaction area Add some tests which demonstrate a NPE issue. Update port-hash Update port-hash after release Update dependency versions Update autoported files Add nuget fallback for project dependencies Move nuget.config Add pdftest to package.config Update port-hash Update port-hash after release [RELEASE] 2.0.2-SNAPSHOT -> 2.0.3-SNAPSHOT Add test for DEVSIX-2056
2 parents 977acda + 576e0a8 commit edef710

File tree

52 files changed

+804
-389
lines changed

Some content is hidden

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

52 files changed

+804
-389
lines changed

itext.cleanup.sln

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 11.00
3+
Project("{3013312C-BB39-4D9D-812F-AC7E3FF203B2}") = "itext.cleanup", "itext\itext.cleanup\itext.cleanup.csproj", "{2F9B8138-96D5-4DF7-A011-61FE24900987}"
4+
EndProject
5+
Project("{3013312C-BB39-4D9D-812F-AC7E3FF203B2}") = "itext.cleanup.tests", "itext.tests\itext.cleanup.tests\itext.cleanup.tests.csproj", "{A23889C9-FB5D-41DD-883F-7C1D78FA0D7D}"
6+
EndProject
7+
Global
8+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
9+
Debug|Any CPU = Debug|Any CPU
10+
Release|Any CPU = Release|Any CPU
11+
EndGlobalSection
12+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
13+
{2F9B8138-96D5-4DF7-A011-61FE24900987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
14+
{2F9B8138-96D5-4DF7-A011-61FE24900987}.Debug|Any CPU.Build.0 = Debug|Any CPU
15+
{2F9B8138-96D5-4DF7-A011-61FE24900987}.Release|Any CPU.ActiveCfg = Release|Any CPU
16+
{2F9B8138-96D5-4DF7-A011-61FE24900987}.Release|Any CPU.Build.0 = Release|Any CPU
17+
{A23889C9-FB5D-41DD-883F-7C1D78FA0D7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18+
{A23889C9-FB5D-41DD-883F-7C1D78FA0D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
19+
{A23889C9-FB5D-41DD-883F-7C1D78FA0D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
20+
{A23889C9-FB5D-41DD-883F-7C1D78FA0D7D}.Release|Any CPU.Build.0 = Release|Any CPU
21+
EndGlobalSection
22+
GlobalSection(SolutionProperties) = preSolution
23+
HideSolutionNode = FALSE
24+
EndGlobalSection
25+
EndGlobal

itext.tests/itext.cleanup.tests/Properties/AssemblyInfo.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
[assembly: AssemblyConfiguration("")]
88
[assembly: AssemblyCompany("iText Group NV")]
99
[assembly: AssemblyProduct("iText")]
10-
[assembly: AssemblyCopyright("Copyright (c) 1998-2018 iText Group NV")]
10+
[assembly: AssemblyCopyright("Copyright (c) 1998-2019 iText Group NV")]
1111
[assembly: AssemblyTrademark("")]
1212
[assembly: AssemblyCulture("")]
1313

1414
[assembly: ComVisible(false)]
1515

1616
[assembly: Guid("647c862e-d837-4901-8e7b-68f5f8bf8f34")]
1717

18-
[assembly: AssemblyVersion("2.0.2.0")]
19-
[assembly: AssemblyFileVersion("2.0.2.0")]
20-
[assembly: AssemblyInformationalVersion("2.0.2")]
18+
[assembly: AssemblyVersion("2.0.3.0")]
19+
[assembly: AssemblyFileVersion("2.0.3.0")]
20+
[assembly: AssemblyInformationalVersion("2.0.3")]
2121

2222
[assembly: NUnit.Framework.Timeout(300000)]

itext.tests/itext.cleanup.tests/itext.cleanup.tests.csproj

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,30 @@
6060
</Target>
6161
-->
6262
<ItemGroup>
63-
<ProjectReference Include="..\..\..\itextcore\itext\itext.io\itext.io.csproj">
63+
<ProjectReference Include="..\..\..\itextcore\itext\itext.io\itext.io.csproj" Condition="Exists('..\..\..\itextcore\itext\itext.io\itext.io.csproj')">
6464
<Project>{CEE5E7E1-1BF0-4BE1-9941-903262CE2F83}</Project>
6565
<Name>itext.io</Name>
6666
</ProjectReference>
67-
<ProjectReference Include="..\..\..\itextcore\itext\itext.kernel\itext.kernel.csproj">
67+
<Reference Include="itext.io, Version=7.1.5.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca" Condition="!Exists('..\..\..\itextcore\itext\itext.io\itext.io.csproj')">
68+
<HintPath>$(SolutionDir)\packages\itext7.7.1.5\lib\net40\itext.io.dll</HintPath>
69+
</Reference>
70+
<ProjectReference Include="..\..\..\itextcore\itext\itext.kernel\itext.kernel.csproj" Condition="Exists('..\..\..\itextcore\itext\itext.kernel\itext.kernel.csproj')">
6871
<Project>{4E7819E8-7555-4E2E-9A01-D8718A2CFDDA}</Project>
6972
<Name>itext.kernel</Name>
7073
</ProjectReference>
71-
<ProjectReference Include="..\..\..\itextcore\itext\itext.pdftest\itext.pdftest.csproj">
74+
<Reference Include="BouncyCastle.Crypto, Version=1.8.1.0, Culture=neutral, PublicKeyToken=0e99375e54769942" Condition="!Exists('..\..\..\itextcore\itext\itext.kernel\itext.kernel.csproj')">
75+
<HintPath>$(SolutionDir)\packages\Portable.BouncyCastle.1.8.1.3\lib\net40\BouncyCastle.Crypto.dll</HintPath>
76+
</Reference>
77+
<Reference Include="itext.kernel, Version=7.1.5.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca" Condition="!Exists('..\..\..\itextcore\itext\itext.kernel\itext.kernel.csproj')">
78+
<HintPath>$(SolutionDir)\packages\itext7.7.1.5\lib\net40\itext.kernel.dll</HintPath>
79+
</Reference>
80+
<ProjectReference Include="..\..\..\itextcore\itext\itext.pdftest\itext.pdftest.csproj" Condition="Exists('..\..\..\itextcore\itext\itext.pdftest\itext.pdftest.csproj')">
7281
<Project>{F9880DC4-F015-4413-AF86-66D0E9512774}</Project>
7382
<Name>itext.pdftest</Name>
7483
</ProjectReference>
84+
<Reference Include="itext.pdftest, Version=7.1.5.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca" Condition="!Exists('..\..\..\itextcore\itext\itext.pdftest\itext.pdftest.csproj')">
85+
<HintPath>$(SolutionDir)\packages\itext7.pdftest.7.1.5\lib\net40\itext.pdftest.dll</HintPath>
86+
</Reference>
7587
<ProjectReference Include="..\..\itext\itext.cleanup\itext.cleanup.csproj">
7688
<Project>{2F9B8138-96D5-4DF7-A011-61FE24900987}</Project>
7789
<Name>itext.cleanup</Name>

itext.tests/itext.cleanup.tests/itext/pdfcleanup/BigDocumentAutoCleanUpTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify

itext.tests/itext.cleanup.tests/itext/pdfcleanup/BigDocumentCleanUpTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify

itext.tests/itext.cleanup.tests/itext/pdfcleanup/CleanUpAnnotationTest.cs

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify
@@ -117,6 +117,21 @@ public virtual void CleanLineAnnotation01() {
117117
CompareByContent(cmp, output, outputPath, "diff_Annotation_line01");
118118
}
119119

120+
/// <exception cref="System.IO.IOException"/>
121+
/// <exception cref="System.Exception"/>
122+
[NUnit.Framework.Test]
123+
public virtual void CleanLineAnnotation02() {
124+
String input = inputPath + "lineAnnotationLeaders.pdf";
125+
String output = outputPath + "cleanLineAnnotation02.pdf";
126+
String cmp = inputPath + "cmp_cleanLineAnnotation02.pdf";
127+
IList<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
128+
PdfCleanUpLocation lineLoc = new PdfCleanUpLocation(1, new Rectangle(100, 560, 200, 30), ColorConstants.GREEN
129+
);
130+
cleanUpLocations.Add(lineLoc);
131+
CleanUp(input, output, cleanUpLocations);
132+
CompareByContent(cmp, output, outputPath);
133+
}
134+
120135
/// <exception cref="System.IO.IOException"/>
121136
/// <exception cref="System.Exception"/>
122137
[NUnit.Framework.Test]
@@ -132,6 +147,45 @@ public virtual void CleanHighlightAnnotation01() {
132147
CompareByContent(cmp, output, outputPath, "diff_text_highlight01");
133148
}
134149

150+
/// <exception cref="System.IO.IOException"/>
151+
/// <exception cref="System.Exception"/>
152+
[NUnit.Framework.Test]
153+
public virtual void CleanStrikeOutAnnotation01() {
154+
String input = inputPath + "strikeOutAnnotQuadOutsideRect.pdf";
155+
String output = outputPath + "cleanStrikeOutAnnotation01.pdf";
156+
String cmp = inputPath + "cmp_cleanStrikeOutAnnotation01.pdf";
157+
IList<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
158+
cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(10, 490, 10, 30), ColorConstants.BLACK));
159+
CleanUp(input, output, cleanUpLocations);
160+
CompareByContent(cmp, output, outputPath);
161+
}
162+
163+
/// <exception cref="System.IO.IOException"/>
164+
/// <exception cref="System.Exception"/>
165+
[NUnit.Framework.Test]
166+
public virtual void CleanStrikeOutAnnotation02() {
167+
String input = inputPath + "strikeOutAnnotQuadOutsideRect.pdf";
168+
String output = outputPath + "cleanStrikeOutAnnotation02.pdf";
169+
String cmp = inputPath + "cmp_cleanStrikeOutAnnotation02.pdf";
170+
IList<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
171+
cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(0, 0, 200, 200), ColorConstants.BLACK));
172+
CleanUp(input, output, cleanUpLocations);
173+
CompareByContent(cmp, output, outputPath);
174+
}
175+
176+
/// <exception cref="System.IO.IOException"/>
177+
/// <exception cref="System.Exception"/>
178+
[NUnit.Framework.Test]
179+
public virtual void CleanFreeTextAnnotation01() {
180+
String input = inputPath + "freeTextAnnotation.pdf";
181+
String output = outputPath + "cleanFreeTextAnnotation01.pdf";
182+
String cmp = inputPath + "cmp_cleanFreeTextAnnotation01.pdf";
183+
IList<PdfCleanUpLocation> cleanUpLocations = new List<PdfCleanUpLocation>();
184+
cleanUpLocations.Add(new PdfCleanUpLocation(1, new Rectangle(100, 560, 200, 30), ColorConstants.BLACK));
185+
CleanUp(input, output, cleanUpLocations);
186+
CompareByContent(cmp, output, outputPath);
187+
}
188+
135189
/// <exception cref="System.IO.IOException"/>
136190
/// <exception cref="System.Exception"/>
137191
[NUnit.Framework.Test]
@@ -159,7 +213,7 @@ public virtual void CleanFormAnnotations02() {
159213
.YELLOW);
160214
cleanUpLocations.Add(highLightLoc);
161215
CleanUp(input, output, cleanUpLocations);
162-
CompareByContent(cmp, output, outputPath, "diff_form01");
216+
CompareByContent(cmp, output, outputPath, "diff_form02");
163217
}
164218

165219
/// <exception cref="System.IO.IOException"/>
@@ -171,6 +225,12 @@ private void CleanUp(String input, String output, IList<PdfCleanUpLocation> clea
171225
pdfDocument.Close();
172226
}
173227

228+
/// <exception cref="System.IO.IOException"/>
229+
/// <exception cref="System.Exception"/>
230+
private void CompareByContent(String cmp, String output, String targetDir) {
231+
CompareByContent(cmp, output, targetDir, null);
232+
}
233+
174234
/// <exception cref="System.IO.IOException"/>
175235
/// <exception cref="System.Exception"/>
176236
private void CompareByContent(String cmp, String output, String targetDir, String diffPrefix) {

itext.tests/itext.cleanup.tests/itext/pdfcleanup/CleanUpTaggedPdfTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify

itext.tests/itext.cleanup.tests/itext/pdfcleanup/FilteredImagesCacheTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*
2+
This file is part of the iText (R) project.
3+
Copyright (c) 1998-2019 iText Group NV
4+
Authors: iText Software.
5+
6+
This program is free software; you can redistribute it and/or modify
7+
it under the terms of the GNU Affero General Public License version 3
8+
as published by the Free Software Foundation with the addition of the
9+
following permission added to Section 15 as permitted in Section 7(a):
10+
FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
11+
ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT
12+
OF THIRD PARTY RIGHTS
13+
14+
This program is distributed in the hope that it will be useful, but
15+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16+
or FITNESS FOR A PARTICULAR PURPOSE.
17+
See the GNU Affero General Public License for more details.
18+
You should have received a copy of the GNU Affero General Public License
19+
along with this program; if not, see http://www.gnu.org/licenses or write to
20+
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21+
Boston, MA, 02110-1301 USA, or download the license from the following URL:
22+
http://itextpdf.com/terms-of-use/
23+
24+
The interactive user interfaces in modified source and object code versions
25+
of this program must display Appropriate Legal Notices, as required under
26+
Section 5 of the GNU Affero General Public License.
27+
28+
In accordance with Section 7(b) of the GNU Affero General Public License,
29+
a covered work must retain the producer line in every PDF that is created
30+
or manipulated using iText.
31+
32+
You can be released from the requirements of the license by purchasing
33+
a commercial license. Buying such a license is mandatory as soon as you
34+
develop commercial activities involving the iText software without
35+
disclosing the source code of your own applications.
36+
These activities include: offering paid services to customers as an ASP,
37+
serving PDFs on the fly in a web application, shipping iText with a closed
38+
source product.
39+
40+
For more information, please contact iText Software Corp. at this
41+
42+
*/
43+
using iText.Kernel.Geom;
44+
45+
namespace iText.PdfCleanup {
46+
public class PdfCleanUpFilterUnitTest {
47+
[NUnit.Framework.Test]
48+
public virtual void CheckIfRectanglesIntersect_completelyCoveredBasic() {
49+
Point[] intersectSubject = new Point[] { new Point(70, 70), new Point(80, 70), new Point(80, 80), new Point
50+
(70, 80) };
51+
Point[] intersecting = new Point[] { new Point(50, 50), new Point(100, 50), new Point(100, 100), new Point
52+
(50, 100) };
53+
NUnit.Framework.Assert.IsTrue(PdfCleanUpFilter.CheckIfRectanglesIntersect(intersectSubject, intersecting));
54+
}
55+
56+
[NUnit.Framework.Test]
57+
public virtual void CheckIfRectanglesIntersect_completelyCoveredDegenerateWidth() {
58+
Point[] intersectSubject = new Point[] { new Point(70, 70), new Point(70, 70), new Point(70, 80), new Point
59+
(70, 80) };
60+
Point[] intersecting = new Point[] { new Point(50, 50), new Point(100, 50), new Point(100, 100), new Point
61+
(50, 100) };
62+
NUnit.Framework.Assert.IsTrue(PdfCleanUpFilter.CheckIfRectanglesIntersect(intersectSubject, intersecting));
63+
}
64+
65+
[NUnit.Framework.Test]
66+
public virtual void CheckIfRectanglesIntersect_completelyCoveredDegenerateHeight() {
67+
Point[] intersectSubject = new Point[] { new Point(70, 70), new Point(80, 70), new Point(80, 70), new Point
68+
(70, 70) };
69+
Point[] intersecting = new Point[] { new Point(50, 50), new Point(100, 50), new Point(100, 100), new Point
70+
(50, 100) };
71+
NUnit.Framework.Assert.IsTrue(PdfCleanUpFilter.CheckIfRectanglesIntersect(intersectSubject, intersecting));
72+
}
73+
74+
[NUnit.Framework.Test]
75+
public virtual void CheckIfRectanglesIntersect_completelyCoveredDegeneratePoint() {
76+
Point[] intersectSubject = new Point[] { new Point(70, 70), new Point(70, 70), new Point(70, 70), new Point
77+
(70, 70) };
78+
Point[] intersecting = new Point[] { new Point(50, 50), new Point(100, 50), new Point(100, 100), new Point
79+
(50, 100) };
80+
NUnit.Framework.Assert.IsTrue(PdfCleanUpFilter.CheckIfRectanglesIntersect(intersectSubject, intersecting));
81+
}
82+
}
83+
}

itext.tests/itext.cleanup.tests/itext/pdfcleanup/PdfCleanUpToolTest.cs

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
This file is part of the iText (R) project.
3-
Copyright (c) 1998-2018 iText Group NV
3+
Copyright (c) 1998-2019 iText Group NV
44
Authors: iText Software.
55
66
This program is free software; you can redistribute it and/or modify
@@ -50,6 +50,7 @@ source product.
5050
using iText.Kernel.Pdf.Annot;
5151
using iText.Kernel.Utils;
5252
using iText.Test;
53+
using iText.Test.Attributes;
5354

5455
namespace iText.PdfCleanup {
5556
public class PdfCleanUpToolTest : ExtendedITextTest {
@@ -601,10 +602,54 @@ public virtual void CleanUpTest46() {
601602
new PdfCleanUpTool(pdfDocument, true).CleanUp();
602603
pdfDocument.Close();
603604
}
604-
, NUnit.Framework.Throws.TypeOf<PdfException>().With.Message.EqualTo(PdfException.DefaultAppearanceNotFound));
605+
, NUnit.Framework.Throws.InstanceOf<PdfException>().With.Message.EqualTo(PdfException.DefaultAppearanceNotFound))
605606
;
606607
}
607608

609+
//Test will be fixed in DEVSIX-2056
610+
/// <exception cref="System.IO.IOException"/>
611+
/// <exception cref="System.Exception"/>
612+
[NUnit.Framework.Test]
613+
public virtual void CleanUpTestFontColor() {
614+
String filename = "fontCleanup.pdf";
615+
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputPath + filename), new PdfWriter(outputPath + filename
616+
));
617+
new PdfCleanUpTool(pdfDoc, true).CleanUp();
618+
pdfDoc.Close();
619+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareVisually(outputPath + filename, inputPath + "cmp_"
620+
+ filename, outputPath, "diff_"));
621+
}
622+
623+
/// <exception cref="System.IO.IOException"/>
624+
/// <exception cref="System.Exception"/>
625+
[NUnit.Framework.Test]
626+
[LogMessage(iText.IO.LogMessageConstant.PDF_REFERS_TO_NOT_EXISTING_PROPERTY_DICTIONARY)]
627+
public virtual void NoPropertiesInResourcesTest() {
628+
String fileName = "noPropertiesInResourcesTest";
629+
String input = inputPath + fileName + ".pdf";
630+
String output = outputPath + fileName + ".pdf";
631+
String cmp = inputPath + "cmp_" + fileName + ".pdf";
632+
IList<PdfCleanUpLocation> cleanUpLocations = JavaUtil.ArraysAsList(new PdfCleanUpLocation(1, new Rectangle
633+
(0, 0, 595, 842), ColorConstants.RED));
634+
CleanUp(input, output, cleanUpLocations);
635+
CompareByContent(cmp, output, outputPath, "diff_" + fileName);
636+
}
637+
638+
/// <exception cref="System.IO.IOException"/>
639+
/// <exception cref="System.Exception"/>
640+
[NUnit.Framework.Test]
641+
[LogMessage(iText.IO.LogMessageConstant.PDF_REFERS_TO_NOT_EXISTING_PROPERTY_DICTIONARY)]
642+
public virtual void IncorrectBDCToBMCTest() {
643+
String fileName = "incorrectBDCToBMCTest";
644+
String input = inputPath + fileName + ".pdf";
645+
String output = outputPath + fileName + ".pdf";
646+
String cmp = inputPath + "cmp_" + fileName + ".pdf";
647+
IList<PdfCleanUpLocation> cleanUpLocations = JavaUtil.ArraysAsList(new PdfCleanUpLocation(1, new Rectangle
648+
(0, 0, 10, 10), ColorConstants.RED));
649+
CleanUp(input, output, cleanUpLocations);
650+
CompareByContent(cmp, output, outputPath, "diff_" + fileName);
651+
}
652+
608653
/// <exception cref="System.IO.IOException"/>
609654
private void CleanUp(String input, String output, IList<PdfCleanUpLocation> cleanUpLocations) {
610655
PdfDocument pdfDocument = new PdfDocument(new PdfReader(input), new PdfWriter(output));

0 commit comments

Comments
 (0)