diff --git a/OpenHtmlToPdf.Tests/HtmlToPdfConversion.cs b/OpenHtmlToPdf.Tests/HtmlToPdfConversion.cs
index 811dd59b..dccdeb50 100644
--- a/OpenHtmlToPdf.Tests/HtmlToPdfConversion.cs
+++ b/OpenHtmlToPdf.Tests/HtmlToPdfConversion.cs
@@ -159,7 +159,7 @@ public void Convert_multiple_documents_concurrently()
var tasks = new List>();
for (var i = 0; i < documentCount; i++)
- tasks.Add(Task.Run(() => Pdf.From(html).Content()));
+ tasks.Add(Task.Factory.StartNew(() => Pdf.From(html).Content()));
Task.WaitAll(tasks.OfType().ToArray());
@@ -202,7 +202,7 @@ public void Convert_massive_number_of_documents()
var tasks = new List>();
for (var i = 0; i < documentCount; i++)
- tasks.Add(Task.Run(() => Pdf.From(html).Content()));
+ tasks.Add(Task.Factory.StartNew(() => Pdf.From(html).Content()));
Task.WaitAll(tasks.OfType().ToArray());
diff --git a/OpenHtmlToPdf.Tests/OpenHtmlToPdf.Tests.csproj b/OpenHtmlToPdf.Tests/OpenHtmlToPdf.Tests.csproj
index fe005779..72a2dd13 100644
--- a/OpenHtmlToPdf.Tests/OpenHtmlToPdf.Tests.csproj
+++ b/OpenHtmlToPdf.Tests/OpenHtmlToPdf.Tests.csproj
@@ -8,7 +8,7 @@
Properties
OpenHtmlToPdf.Tests
OpenHtmlToPdf.Tests
- v4.5
+ v4.0
512
{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
10.0
@@ -18,6 +18,7 @@
UnitTest
..\
true
+
true
diff --git a/OpenHtmlToPdf.WkHtmlToPdf/App.config b/OpenHtmlToPdf.WkHtmlToPdf/App.config
index 8e156463..74ade9db 100644
--- a/OpenHtmlToPdf.WkHtmlToPdf/App.config
+++ b/OpenHtmlToPdf.WkHtmlToPdf/App.config
@@ -1,6 +1,6 @@
-
+
-
+
-
\ No newline at end of file
+
diff --git a/OpenHtmlToPdf.WkHtmlToPdf/Assets/ZipArchiveHelper.cs b/OpenHtmlToPdf.WkHtmlToPdf/Assets/ZipArchiveHelper.cs
index 86abc08d..ffb55381 100644
--- a/OpenHtmlToPdf.WkHtmlToPdf/Assets/ZipArchiveHelper.cs
+++ b/OpenHtmlToPdf.WkHtmlToPdf/Assets/ZipArchiveHelper.cs
@@ -1,4 +1,5 @@
-using System.IO;
+using Ionic.Zip;
+using System.IO;
using System.IO.Compression;
using System.Linq;
@@ -6,18 +7,18 @@ namespace OpenHtmlToPdf.WkHtmlToPdf.Assets
{
static class ZipArchiveHelper
{
- public static byte[] ReadFile(this ZipArchive zipArchive, string filename)
+ public static byte[] ReadFile(this ZipFile zipFile, string filename)
{
- return zipArchive.Entries
- .Where(e => e.FullName == filename)
+ return zipFile.Entries
+ .Where(e => e.FileName == filename)
.Select(Read).Single();
}
- private static byte[] Read(this ZipArchiveEntry zipArchiveEntry)
+ private static byte[] Read(this ZipEntry zipEntry)
{
- using (var stream = zipArchiveEntry.Open())
+ using (var stream = zipEntry.OpenReader())
{
- return stream.Read(zipArchiveEntry.Length);
+ return stream.Read(zipEntry.UncompressedSize);
}
}
diff --git a/OpenHtmlToPdf.WkHtmlToPdf/OpenHtmlToPdf.WkHtmlToPdf.csproj b/OpenHtmlToPdf.WkHtmlToPdf/OpenHtmlToPdf.WkHtmlToPdf.csproj
index fe3c6bed..ee4738b8 100644
--- a/OpenHtmlToPdf.WkHtmlToPdf/OpenHtmlToPdf.WkHtmlToPdf.csproj
+++ b/OpenHtmlToPdf.WkHtmlToPdf/OpenHtmlToPdf.WkHtmlToPdf.csproj
@@ -9,10 +9,13 @@
Properties
OpenHtmlToPdf.WkHtmlToPdf
OpenHtmlToPdf.WkHtmlToPdf
- v4.5
+ v4.0
512
..\
true
+
+
+
AnyCPU
@@ -40,9 +43,11 @@
+
+ ..\packages\DotNetZip.1.13.8\lib\net40\DotNetZip.dll
+
-
@@ -73,6 +78,7 @@
+
diff --git a/OpenHtmlToPdf.WkHtmlToPdf/WkHtmlToX/WkHtmlToPdfLibrary.cs b/OpenHtmlToPdf.WkHtmlToPdf/WkHtmlToX/WkHtmlToPdfLibrary.cs
index e705caa5..3b39fe80 100644
--- a/OpenHtmlToPdf.WkHtmlToPdf/WkHtmlToX/WkHtmlToPdfLibrary.cs
+++ b/OpenHtmlToPdf.WkHtmlToPdf/WkHtmlToX/WkHtmlToPdfLibrary.cs
@@ -2,6 +2,7 @@
using System.IO;
using System.IO.Compression;
using System.Reflection;
+using Ionic.Zip;
using OpenHtmlToPdf.WkHtmlToPdf.Assets;
using OpenHtmlToPdf.WkHtmlToPdf.Interop;
@@ -23,15 +24,15 @@ private static byte[] LoadLibraryContent()
if (Environment.OSVersion.Platform != PlatformID.Win32NT)
throw new PlatformNotSupportedException(String.Format("Platform {0} is not supported", Platform()));
- using (var wkhtmltoxZipArchive = WkHtmlToXZipArchive())
+ using (var wkhtmltoxZipArchive = WkHtmlToXZipFile())
{
return wkhtmltoxZipArchive.ReadFile(CompressedLibraryFilename());
}
}
- private static ZipArchive WkHtmlToXZipArchive()
+ private static ZipFile WkHtmlToXZipFile()
{
- return new ZipArchive(GetManifestResourceStream());
+ return ZipFile.Read(GetManifestResourceStream());
}
private static Stream GetManifestResourceStream()
diff --git a/OpenHtmlToPdf.WkHtmlToPdf/packages.config b/OpenHtmlToPdf.WkHtmlToPdf/packages.config
new file mode 100644
index 00000000..ceee4656
--- /dev/null
+++ b/OpenHtmlToPdf.WkHtmlToPdf/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/OpenHtmlToPdf/Assets/ConverterExecutable.cs b/OpenHtmlToPdf/Assets/ConverterExecutable.cs
index 17a30e9d..f440ef9f 100644
--- a/OpenHtmlToPdf/Assets/ConverterExecutable.cs
+++ b/OpenHtmlToPdf/Assets/ConverterExecutable.cs
@@ -7,6 +7,7 @@ namespace OpenHtmlToPdf.Assets
sealed class ConverterExecutable
{
private const string ConverterExecutableFilename = "OpenHtmlToPdf.WkHtmlToPdf.exe";
+ private const string ConverterExecutableReferenceFilename = "DotNetZip.dll";
private ConverterExecutable()
{
@@ -21,6 +22,13 @@ public static ConverterExecutable Get()
return bundledFile;
}
+
+ public string FullConverterExecutableReferenceFilename
+ {
+ get { return ResolveFullPathToConverterExecutableReferenceFile(); }
+ }
+
+
public string FullConverterExecutableFilename
{
get { return ResolveFullPathToConverterExecutableFile(); }
@@ -28,13 +36,17 @@ public string FullConverterExecutableFilename
private void CreateIfConverterExecutableDoesNotExist()
{
+ if (!File.Exists(FullConverterExecutableReferenceFilename))
+ Create(GetConverterExecutableContent(GetConverterReferenceExecutable()), FullConverterExecutableReferenceFilename);
+
if (!File.Exists(FullConverterExecutableFilename))
- Create(GetConverterExecutableContent());
+ Create(GetConverterExecutableContent(GetConverterExecutable()), FullConverterExecutableFilename);
+
}
- private static byte[] GetConverterExecutableContent()
+ private static byte[] GetConverterExecutableContent(Stream stream)
{
- using (var resourceStream = GetConverterExecutable())
+ using (var resourceStream = stream)
{
var resource = new byte[resourceStream.Length];
@@ -44,12 +56,21 @@ private static byte[] GetConverterExecutableContent()
}
}
+
+
private static Stream GetConverterExecutable()
{
return Assembly.GetExecutingAssembly().GetManifestResourceStream("OpenHtmlToPdf.Assets.OpenHtmlToPdf.WkHtmlToPdf.exe");
}
- private void Create(byte[] fileContent)
+ private static Stream GetConverterReferenceExecutable()
+ {
+ return Assembly.GetExecutingAssembly().GetManifestResourceStream("OpenHtmlToPdf.Assets.DotNetZip.dll");
+ }
+
+
+
+ private void Create(byte[] fileContent, string Name)
{
try
{
@@ -57,7 +78,7 @@ private void Create(byte[] fileContent)
Directory.CreateDirectory(BundledFilesDirectory());
- using (var file = File.Open(FullConverterExecutableFilename, FileMode.Create))
+ using (var file = File.Open(Name, FileMode.Create))
{
file.Write(fileContent, 0, fileContent.Length);
@@ -73,6 +94,11 @@ private static string ResolveFullPathToConverterExecutableFile()
return Path.Combine(BundledFilesDirectory(), ConverterExecutableFilename);
}
+ private static string ResolveFullPathToConverterExecutableReferenceFile()
+ {
+ return Path.Combine(BundledFilesDirectory(), ConverterExecutableReferenceFilename);
+ }
+
private static string BundledFilesDirectory()
{
return Path.Combine(Path.GetTempPath(), "OpenHtmlToPdf", Version());
diff --git a/OpenHtmlToPdf/Assets/DotNetZip.dll b/OpenHtmlToPdf/Assets/DotNetZip.dll
new file mode 100644
index 00000000..9d1e57ec
Binary files /dev/null and b/OpenHtmlToPdf/Assets/DotNetZip.dll differ
diff --git a/OpenHtmlToPdf/Assets/OpenHtmlToPdf.WkHtmlToPdf.exe b/OpenHtmlToPdf/Assets/OpenHtmlToPdf.WkHtmlToPdf.exe
index f8421b37..c414a010 100644
Binary files a/OpenHtmlToPdf/Assets/OpenHtmlToPdf.WkHtmlToPdf.exe and b/OpenHtmlToPdf/Assets/OpenHtmlToPdf.WkHtmlToPdf.exe differ
diff --git a/OpenHtmlToPdf/Key.snk b/OpenHtmlToPdf/Key.snk
new file mode 100644
index 00000000..770071cb
Binary files /dev/null and b/OpenHtmlToPdf/Key.snk differ
diff --git a/OpenHtmlToPdf/OpenHtmlToPdf.csproj b/OpenHtmlToPdf/OpenHtmlToPdf.csproj
index 35b4232e..e32040e0 100644
--- a/OpenHtmlToPdf/OpenHtmlToPdf.csproj
+++ b/OpenHtmlToPdf/OpenHtmlToPdf.csproj
@@ -10,7 +10,7 @@
Properties
OpenHtmlToPdf
OpenHtmlToPdf
- v4.5
+ v4.0
512
..\
true
@@ -95,10 +95,15 @@
+
+ true
+
+
+ Key.snk
+
-
@@ -119,9 +124,12 @@
+
-
+
+
+
diff --git a/OpenHtmlToPdf/Properties/AssemblyInfo.cs b/OpenHtmlToPdf/Properties/AssemblyInfo.cs
index 7f45ceb2..8f1565a7 100644
--- a/OpenHtmlToPdf/Properties/AssemblyInfo.cs
+++ b/OpenHtmlToPdf/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.12.0")]
-[assembly: AssemblyFileVersion("1.12.0")]
+[assembly: AssemblyVersion("1.12.1")]
+[assembly: AssemblyFileVersion("1.12.1")]