Browse Source

compdfkit(windows) - outline

liuaoran 1 year ago
parent
commit
c95ae2dcf1

+ 0 - 3
Demo/Examples/Annotations/Annotations.csproj

@@ -102,9 +102,6 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <None Include="..\TestFile\PDF32000_2008.pdf">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
     <None Include="packages.config" />
     <None Include="PDFA\sRGB2014.icc">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

+ 28 - 0
Demo/Examples/Examlpes.sln

@@ -38,6 +38,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EncryptTest", "Samples\Encr
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookmarkTest", "Samples\BookmarkTest\BookmarkTest.csproj", "{26E617CD-C1D7-4EC2-AC9F-E3F4546B2202}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageExtractTest", "Samples\ImageExtractTest\ImageExtractTest.csproj", "{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDFPageTest", "Samples\PDFPageTest\PDFPageTest.csproj", "{B776A04B-C674-4A8B-88FC-2431034E8F78}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDFToImageTest", "Samples\PDFToImage\PDFToImageTest.csproj", "{82A11207-3CA9-47D2-9F1C-94FE057DABFE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OutlineTest", "Samples\OutlineTest\OutlineTest.csproj", "{7323B63A-6073-4A22-82F5-29023702F2C1}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -100,6 +108,22 @@ Global
 		{26E617CD-C1D7-4EC2-AC9F-E3F4546B2202}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{26E617CD-C1D7-4EC2-AC9F-E3F4546B2202}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{26E617CD-C1D7-4EC2-AC9F-E3F4546B2202}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B776A04B-C674-4A8B-88FC-2431034E8F78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B776A04B-C674-4A8B-88FC-2431034E8F78}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B776A04B-C674-4A8B-88FC-2431034E8F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B776A04B-C674-4A8B-88FC-2431034E8F78}.Release|Any CPU.Build.0 = Release|Any CPU
+		{82A11207-3CA9-47D2-9F1C-94FE057DABFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{82A11207-3CA9-47D2-9F1C-94FE057DABFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{82A11207-3CA9-47D2-9F1C-94FE057DABFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{82A11207-3CA9-47D2-9F1C-94FE057DABFE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7323B63A-6073-4A22-82F5-29023702F2C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7323B63A-6073-4A22-82F5-29023702F2C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7323B63A-6073-4A22-82F5-29023702F2C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7323B63A-6073-4A22-82F5-29023702F2C1}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -112,6 +136,10 @@ Global
 		{34BE4547-F57E-473C-A4D9-2EFEDAC6B87E} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
 		{D225EA72-F34A-4AC6-9016-91F99D30DB81} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
 		{26E617CD-C1D7-4EC2-AC9F-E3F4546B2202} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
+		{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
+		{B776A04B-C674-4A8B-88FC-2431034E8F78} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
+		{82A11207-3CA9-47D2-9F1C-94FE057DABFE} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
+		{7323B63A-6073-4A22-82F5-29023702F2C1} = {812D8275-2791-4CEF-A4E8-39A78E49D8FB}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {8EE774F1-5FBF-482A-9A31-5ABDEC216DEF}

+ 6 - 0
Demo/Examples/Samples/ImageExtractTest/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>

+ 43 - 0
Demo/Examples/Samples/ImageExtractTest/ImageExtractTest.cs

@@ -0,0 +1,43 @@
+using ComPDFKit.Import;
+using ComPDFKit.PDFDocument;
+using ComPDFKit.PDFPage;
+using System;
+using System.Collections.Generic; 
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+
+namespace ImageExtractTest
+{
+    internal class ImageExtractTest
+    {
+        static private string outputPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()))) + "\\Output\\ImageExtract";
+
+        static void Main(string[] args)
+        {
+            Console.WriteLine("Running Bookmark test sample…\r\n");
+
+            SDKLicenseHelper.LicenseVerify();
+
+            CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+
+            if (!Directory.Exists(outputPath))
+            {
+                Directory.CreateDirectory(outputPath);
+            }
+
+            ExtractImage(document);
+            Console.ReadLine();
+        }
+
+        static private bool ExtractImage(CPDFDocument document)
+        { 
+            document.ExtractImage("1-5", outputPath);
+            return true;
+        }
+    }
+}

+ 85 - 0
Demo/Examples/Samples/ImageExtractTest/ImageExtractTest.csproj

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{DEAF0496-2E3D-4A76-B24E-0E672B21ED3F}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>ImageExtractTest</RootNamespace>
+    <AssemblyName>Viewer_ComPDFKit</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ComPDFKit.Desk, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Desk.dll</HintPath>
+    </Reference>
+    <Reference Include="ComPDFKit.Viewer, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Viewer.dll</HintPath>
+    </Reference>
+    <Reference Include="PresentationCore" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+    <Reference Include="WindowsBase" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\LicenseKey.cs">
+      <Link>LicenseKey.cs</Link>
+    </Compile>
+    <Compile Include="ImageExtractTest.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\TestFile\CommonFivePage.pdf">
+      <Link>CommonFivePage.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="App.config" />
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\license_key_win.xml">
+      <Link>license_key_win.xml</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets" Condition="Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets'))" />
+  </Target>
+</Project>

+ 36 - 0
Demo/Examples/Samples/ImageExtractTest/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ImageExtractTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ImageExtractTest")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("deaf0496-2e3d-4a76-b24e-0e672b21ed3f")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// 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.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 4 - 0
Demo/Examples/Samples/ImageExtractTest/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="ComPDFKit.NetFramework" version="1.9.0" targetFramework="net461" />
+</packages>

+ 137 - 0
Demo/Examples/Samples/OutlineTest/OutlineTest.cs

@@ -0,0 +1,137 @@
+using ComPDFKit.PDFDocument;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OutlineTest
+{
+    internal class OutlineTest
+    {
+        static private string outputPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()))) + "\\Output\\OutlineTest";
+        static private int outlineCounter = 0;
+        static private int outlineNumber = 0;
+        static void Main(string[] args)
+        {
+            Console.WriteLine("Running Outline test sample…\r\n");
+
+            SDKLicenseHelper.LicenseVerify();
+            CPDFDocument document = CPDFDocument.InitWithFilePath("FourOutline.pdf");
+
+            if (PrintOutline(document))
+            {
+                Console.WriteLine("Print outline done.");
+            }
+            else
+            {
+                Console.WriteLine("Print outline failed.");
+            }
+
+            Console.WriteLine("--------------------");
+
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("FourOutline.pdf");
+
+            if (CreateOutline(document))
+            {
+                Console.WriteLine("Create outline done.");
+            }
+            else
+            {
+                Console.WriteLine("Create outline failed.");
+            }
+            Console.WriteLine("--------------------");
+
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("FourOutline.pdf");
+            if (MoveOutline(document))
+            {
+                Console.WriteLine("Move outline done.");
+            }
+            else
+            {
+                Console.WriteLine("Move outline failed.");
+            }
+            Console.WriteLine("--------------------");
+
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("FourOutline.pdf");
+            if (RemoveOutline(document))
+            {
+                Console.WriteLine("Move outline done.");
+            }
+            else
+            {
+                Console.WriteLine("Move outline failed.");
+            }
+            Console.WriteLine("--------------------");
+            Console.WriteLine("Done.");
+            Console.WriteLine("--------------------");
+
+            Console.ReadLine();
+        }
+
+        static private void TraverseOutline(List<CPDFOutline> outlineList)
+        {
+            foreach (var outline in outlineList)
+            {
+                for (var i = 0; i < outlineCounter; i++)
+                {
+                    Console.Write("    ");
+                }
+                Console.Write("-> " + outline.Title + "\n");
+                outlineNumber++;
+                var childList = outline.ChildList;
+                if (childList != null && childList.Count != 0)
+                {
+                    outlineCounter++;
+                    TraverseOutline(childList);
+                }
+                else
+                {
+                    outlineCounter--;
+                }
+            }
+        }
+
+        static private bool PrintOutline(CPDFDocument document)
+        {
+            List<CPDFOutline> outlineList = document.GetOutlineList();
+            outlineNumber = 0;
+            outlineCounter = 0;
+            TraverseOutline(outlineList);
+            Console.WriteLine("Outline number: {0}", outlineNumber);
+            return true;
+        }
+
+        static private bool CreateOutline(CPDFDocument document)
+        {
+            CPDFOutline outline = document.GetOutlineRoot();
+            CPDFOutline childOutline = null;
+            outline.InsertChildAtIndex(document, 1, ref childOutline); 
+            childOutline.SetTitle("Title");
+            PrintOutline(document);
+            return true;
+        }
+
+        static private bool MoveOutline(CPDFDocument document)
+        {
+            CPDFOutline outline = document.GetOutlineRoot();
+            outline.SetTitle("new outline");
+            outline.InsertChildAtIndex(document, 1, ref outline);
+            PrintOutline(document);
+            return true;
+        }
+
+        static private bool RemoveOutline(CPDFDocument document)
+        {
+            CPDFOutline outline = document.GetOutlineRoot();
+            outline.SetTitle("new outline");
+            outline.InsertChildAtIndex(document, 1, ref outline);
+            PrintOutline(document);
+            return true;
+        }
+    }
+}

+ 21 - 5
Demo/Examples/Samples/OutlineTest/OutlineTest.csproj

@@ -4,14 +4,16 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{AADC9F79-3C01-451A-8AA1-FC7650BD2BC9}</ProjectGuid>
+    <ProjectGuid>{7323B63A-6073-4A22-82F5-29023702F2C1}</ProjectGuid>
     <OutputType>Exe</OutputType>
     <RootNamespace>OutlineTest</RootNamespace>
-    <AssemblyName>OutlineTest</AssemblyName>
+    <AssemblyName>Viewer_ComPDFKit</AssemblyName>
     <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
     <Deterministic>true</Deterministic>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -33,6 +35,12 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="ComPDFKit.Desk, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Desk.dll</HintPath>
+    </Reference>
+    <Reference Include="ComPDFKit.Viewer, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Viewer.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Xml.Linq" />
@@ -46,15 +54,16 @@
     <Compile Include="..\LicenseKey.cs">
       <Link>LicenseKey.cs</Link>
     </Compile>
-    <Compile Include="Program.cs" />
+    <Compile Include="OutlineTest.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\..\TestFile\CommonFivePage.pdf">
-      <Link>CommonFivePage.pdf</Link>
+    <None Include="..\..\TestFile\FourOutline.pdf">
+      <Link>FourOutline.pdf</Link>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <None Include="App.config" />
+    <None Include="packages.config" />
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\license_key_win.xml">
@@ -63,4 +72,11 @@
     </None>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets" Condition="Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets'))" />
+  </Target>
 </Project>

+ 0 - 15
Demo/Examples/Samples/OutlineTest/Program.cs

@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OutlineTest
-{
-    internal class Program
-    {
-        static void Main(string[] args)
-        {
-        }
-    }
-}

+ 1 - 1
Demo/Examples/Samples/OutlineTest/Properties/AssemblyInfo.cs

@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("aadc9f79-3c01-451a-8aa1-fc7650bd2bc9")]
+[assembly: Guid("7323b63a-6073-4a22-82f5-29023702f2c1")]
 
 // Version information for an assembly consists of the following four values:
 //

+ 4 - 0
Demo/Examples/Samples/OutlineTest/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="ComPDFKit.NetFramework" version="1.9.0" targetFramework="net461" />
+</packages>

+ 6 - 0
Demo/Examples/Samples/PDFPageTest/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>

+ 244 - 0
Demo/Examples/Samples/PDFPageTest/PDFPageTest.cs

@@ -0,0 +1,244 @@
+using ComPDFKit.PDFDocument;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PDFPageTest
+{
+    internal class PDFPageTest
+    {
+        static private string outputPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()))) + "\\Output\\PDFPageTest";
+        static void Main(string[] args)
+        {
+            Console.WriteLine("Running PDFPage test sample…\r\n");
+
+            SDKLicenseHelper.LicenseVerify();
+            CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            if (!Directory.Exists(outputPath))
+            {
+                Directory.CreateDirectory(outputPath);
+            }
+
+            if (InsertBlankPage(document))
+            {
+                Console.WriteLine("Insert blank page done.");
+            }
+            else
+            {
+                Console.WriteLine("Insert blank page failed.");
+            }
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (InsertPDFPPage(document))
+            {
+                Console.WriteLine("Insert PDF page done.");
+            }
+            else
+            {
+                Console.WriteLine("Insert PDF page failed.");
+            }
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (SplitPages(document))
+            {
+                Console.WriteLine("Split page done.");
+            }
+            else
+            {
+                Console.WriteLine("Split failed.");
+            } 
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (RemovePaes(document))
+            {
+                Console.WriteLine("Delete even page done.");
+            }
+            else
+            {
+                Console.WriteLine("Delete even page failed.");
+            } 
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (RotatePage(document))
+            {
+                Console.WriteLine("Rotate page done.");
+            }
+            else
+            {
+                Console.WriteLine("Rotate page failed.");
+            }
+
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (RepalcePages(document))
+            {
+                Console.WriteLine("Repalce page done.");
+            }
+            else
+            {
+                Console.WriteLine("Repalce page failed.");
+            }
+
+            document.Release();
+            document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+            Console.WriteLine("--------------------");
+            if (ExtractPages(document))
+            {
+                Console.WriteLine("Extract page done.");
+            }
+            else
+            {
+                Console.WriteLine("Extract page failed.");
+            }
+
+            Console.WriteLine("--------------------");
+            Console.WriteLine("Done");
+            Console.WriteLine("--------------------");
+
+            Console.ReadLine();
+        }
+
+        static private bool InsertBlankPage(CPDFDocument document)
+        {
+            int pageIndex = 1;
+            int pageWidth = 595;
+            int pageHeight = 842;
+            document.InsertPage(pageIndex, pageWidth, pageHeight, null);
+            Console.WriteLine("Insert PageIndex: {0}", pageIndex);
+            Console.WriteLine("Size; {0}*{1}", pageWidth, pageHeight);
+
+            if (document.PageCount != 6)
+            {
+                return false;
+            }
+
+            string path = outputPath + "\\InsertBlankPageTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+
+        static private bool InsertPDFPPage(CPDFDocument document)
+        {
+            CPDFDocument documentForInsert = CPDFDocument.InitWithFilePath("Text.pdf");
+            document.ImportPagesAtIndex(documentForInsert, "1", 1);
+            if (document.PageCount != 6)
+            {
+                return false;
+            }
+            string path = outputPath + "\\InsertPDFPPageTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+
+        static private bool SplitPages(CPDFDocument document)
+        {
+            CPDFDocument documentPart1 = CPDFDocument.CreateDocument();
+            CPDFDocument documentPart2 = CPDFDocument.CreateDocument();
+            documentPart1.ImportPagesAtIndex(document, "1-2", 0);
+            documentPart2.ImportPagesAtIndex(document, "3-5", 0);
+            if (documentPart1.PageCount != 2)
+            {
+                return false;
+            }
+            string pathPart1 = outputPath + "\\SplitPart1Test.pdf";
+            if (!documentPart1.WriteToFilePath(pathPart1))
+            {
+                return false;
+            }
+            if (documentPart2.PageCount != 3)
+            {
+                return false;
+            }
+            string pathPart2 = outputPath + "\\SplitPart2Test.pdf";
+            if (!documentPart2.WriteToFilePath(pathPart2))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + pathPart1);
+            Console.WriteLine("Browse the changed file in " + pathPart2);
+            return true;
+        }
+
+        static private bool RemovePaes(CPDFDocument document)
+        {
+            ArrayList arr = new ArrayList();
+            for (int i = 2; i < document.PageCount; i += 2){
+                arr.Add(i);
+            }
+            document.RemovePages((int[])arr.ToArray(typeof(int)));
+            if(document.PageCount != 3)
+            {
+                return false;
+            } 
+            string path = outputPath + "\\RemoveEvenPagesTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+
+        static private bool RotatePage(CPDFDocument document)
+        {
+            document.RotatePage(0, 1);
+            string path = outputPath + "\\RotatePageTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+
+        static private bool RepalcePages(CPDFDocument document)
+        {
+            int[] pageArr = new int[1];
+            pageArr[0] = 0;
+            document.RemovePages(pageArr);
+            CPDFDocument documentForInsert = CPDFDocument.InitWithFilePath("Text.pdf");
+            document.ImportPagesAtIndex(documentForInsert, "1", 0);
+            string path = outputPath + "\\RepalcePagesTest.pdf";
+            if (!document.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+
+        static private bool ExtractPages(CPDFDocument document)
+        {
+            CPDFDocument extractDocument = CPDFDocument.CreateDocument();
+            extractDocument.ImportPagesAtIndex(document, "1", 0);
+            if (!(extractDocument.PageCount == 1))
+            {
+                return false;
+            }
+            string path = outputPath + "\\ExtractPagesTest.pdf";
+            if (!extractDocument.WriteToFilePath(path))
+            {
+                return false;
+            }
+            Console.WriteLine("Browse the changed file in " + path);
+            return true;
+        }
+    }
+}

+ 86 - 0
Demo/Examples/Samples/PDFPageTest/PDFPageTest.csproj

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{B776A04B-C674-4A8B-88FC-2431034E8F78}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>PDFPageTest</RootNamespace>
+    <AssemblyName>Viewer_ComPDFKit</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ComPDFKit.Desk, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Desk.dll</HintPath>
+    </Reference>
+    <Reference Include="ComPDFKit.Viewer, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Viewer.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\LicenseKey.cs">
+      <Link>LicenseKey.cs</Link>
+    </Compile>
+    <Compile Include="PDFPageTest.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\TestFile\CommonFivePage.pdf">
+      <Link>CommonFivePage.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="..\..\TestFile\Text.pdf">
+      <Link>Text.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="App.config" />
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\license_key_win.xml">
+      <Link>license_key_win.xml</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets" Condition="Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets'))" />
+  </Target>
+</Project>

+ 36 - 0
Demo/Examples/Samples/PDFPageTest/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PDFPageTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PDFPageTest")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b776a04b-c674-4a8b-88fc-2431034e8f78")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// 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.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 4 - 0
Demo/Examples/Samples/PDFPageTest/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="ComPDFKit.NetFramework" version="1.9.0" targetFramework="net461" />
+</packages>

+ 6 - 0
Demo/Examples/Samples/PDFToImage/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>

+ 33 - 0
Demo/Examples/Samples/PDFToImage/PDFToImage.cs

@@ -0,0 +1,33 @@
+using ComPDFKit.PDFDocument;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PDFToImageTest
+{
+    internal class PDFToImage
+    {
+        static private string outputPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()))) + "\\Output\\PDFToImageTest";
+        static void Main(string[] args)
+        {
+            Console.WriteLine("Running PDFToImage test sample…\r\n");
+
+            SDKLicenseHelper.LicenseVerify();
+            CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
+
+            if (!Directory.Exists(outputPath))
+            {
+                Directory.CreateDirectory(outputPath);
+            }  
+        }
+        static private bool PDFPageToImage()
+        {
+
+
+            return false;
+        }
+    }
+}

+ 82 - 0
Demo/Examples/Samples/PDFToImage/PDFToImageTest.csproj

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{82A11207-3CA9-47D2-9F1C-94FE057DABFE}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>PDFToImage</RootNamespace>
+    <AssemblyName>Viewer_ComPDFKit</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="ComPDFKit.Desk, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Desk.dll</HintPath>
+    </Reference>
+    <Reference Include="ComPDFKit.Viewer, Version=1.8.1.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\ComPDFKit.NetFramework.1.9.0\lib\ComPDFKit.Viewer.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\LicenseKey.cs">
+      <Link>LicenseKey.cs</Link>
+    </Compile>
+    <Compile Include="PDFToImage.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\TestFile\CommonFivePage.pdf">
+      <Link>CommonFivePage.pdf</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="App.config" />
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\license_key_win.xml">
+      <Link>license_key_win.xml</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets" Condition="Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\ComPDFKit.NetFramework.1.9.0\build\ComPDFKit.NetFramework.targets'))" />
+  </Target>
+</Project>

+ 36 - 0
Demo/Examples/Samples/PDFToImage/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PDFToImage")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PDFToImage")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("82a11207-3ca9-47d2-9f1c-94fe057dabfe")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// 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.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 4 - 0
Demo/Examples/Samples/PDFToImage/packages.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="ComPDFKit.NetFramework" version="1.9.0" targetFramework="net461" />
+</packages>

BIN
Demo/Examples/TestFile/FourOutline.pdf


BIN
Demo/Examples/TestFile/Text.pdf