From b972ba36056d2a7e4f0d31118852eed6418a659e Mon Sep 17 00:00:00 2001 From: Null Date: Wed, 26 Dec 2018 20:54:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PdfInvoiceMerge.sln | 30 + PdfInvoiceMerge/App.config | 6 + PdfInvoiceMerge/FodyWeavers.xml | 4 + PdfInvoiceMerge/FodyWeavers.xsd | 111 ++++ PdfInvoiceMerge/PdfInvoiceMerge.csproj | 107 ++++ PdfInvoiceMerge/Program.cs | 22 + PdfInvoiceMerge/Properties/AssemblyInfo.cs | 38 ++ .../Properties/Resources.Designer.cs | 73 +++ PdfInvoiceMerge/Properties/Resources.resx | 124 ++++ .../Properties/Settings.Designer.cs | 30 + PdfInvoiceMerge/Properties/Settings.settings | 7 + PdfInvoiceMerge/Resources/Invoice.ico | Bin 0 -> 125928 bytes PdfInvoiceMerge/frmAbout.Designer.cs | 185 ++++++ PdfInvoiceMerge/frmAbout.cs | 105 +++ PdfInvoiceMerge/frmAbout.resx | 603 ++++++++++++++++++ PdfInvoiceMerge/frmMain.Designer.cs | 251 ++++++++ PdfInvoiceMerge/frmMain.cs | 360 +++++++++++ PdfInvoiceMerge/frmMain.resx | 181 ++++++ README.md | 5 +- 19 files changed, 2240 insertions(+), 2 deletions(-) create mode 100644 PdfInvoiceMerge.sln create mode 100644 PdfInvoiceMerge/App.config create mode 100644 PdfInvoiceMerge/FodyWeavers.xml create mode 100644 PdfInvoiceMerge/FodyWeavers.xsd create mode 100644 PdfInvoiceMerge/PdfInvoiceMerge.csproj create mode 100644 PdfInvoiceMerge/Program.cs create mode 100644 PdfInvoiceMerge/Properties/AssemblyInfo.cs create mode 100644 PdfInvoiceMerge/Properties/Resources.Designer.cs create mode 100644 PdfInvoiceMerge/Properties/Resources.resx create mode 100644 PdfInvoiceMerge/Properties/Settings.Designer.cs create mode 100644 PdfInvoiceMerge/Properties/Settings.settings create mode 100644 PdfInvoiceMerge/Resources/Invoice.ico create mode 100644 PdfInvoiceMerge/frmAbout.Designer.cs create mode 100644 PdfInvoiceMerge/frmAbout.cs create mode 100644 PdfInvoiceMerge/frmAbout.resx create mode 100644 PdfInvoiceMerge/frmMain.Designer.cs create mode 100644 PdfInvoiceMerge/frmMain.cs create mode 100644 PdfInvoiceMerge/frmMain.resx diff --git a/PdfInvoiceMerge.sln b/PdfInvoiceMerge.sln new file mode 100644 index 0000000..1e0e5cc --- /dev/null +++ b/PdfInvoiceMerge.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.168 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfInvoiceMerge", "PdfInvoiceMerge\PdfInvoiceMerge.csproj", "{094421BB-0C8C-409C-9AAB-69B744FA96B8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{38675ED6-4211-4F52-8CF2-14C622A70F05}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {094421BB-0C8C-409C-9AAB-69B744FA96B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {094421BB-0C8C-409C-9AAB-69B744FA96B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {094421BB-0C8C-409C-9AAB-69B744FA96B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {094421BB-0C8C-409C-9AAB-69B744FA96B8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {639E5231-B264-499C-BFD8-5E3DED8F9C17} + EndGlobalSection +EndGlobal diff --git a/PdfInvoiceMerge/App.config b/PdfInvoiceMerge/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/PdfInvoiceMerge/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/PdfInvoiceMerge/FodyWeavers.xml b/PdfInvoiceMerge/FodyWeavers.xml new file mode 100644 index 0000000..a5dcf04 --- /dev/null +++ b/PdfInvoiceMerge/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/PdfInvoiceMerge/FodyWeavers.xsd b/PdfInvoiceMerge/FodyWeavers.xsd new file mode 100644 index 0000000..44a5374 --- /dev/null +++ b/PdfInvoiceMerge/FodyWeavers.xsd @@ -0,0 +1,111 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with |. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/PdfInvoiceMerge/PdfInvoiceMerge.csproj b/PdfInvoiceMerge/PdfInvoiceMerge.csproj new file mode 100644 index 0000000..2f0a6b8 --- /dev/null +++ b/PdfInvoiceMerge/PdfInvoiceMerge.csproj @@ -0,0 +1,107 @@ + + + + + Debug + AnyCPU + {094421BB-0C8C-409C-9AAB-69B744FA96B8} + WinExe + PdfInvoiceMerge + PdfInvoiceMerge + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + Resources\Invoice.ico + + + + + + + + + + + + + + + + + Form + + + frmAbout.cs + + + Form + + + frmMain.cs + + + + + frmAbout.cs + + + frmMain.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + 3.2.1 + + + 5.5.13 + + + + + + + \ No newline at end of file diff --git a/PdfInvoiceMerge/Program.cs b/PdfInvoiceMerge/Program.cs new file mode 100644 index 0000000..466301d --- /dev/null +++ b/PdfInvoiceMerge/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PdfInvoiceMerge +{ + static class Program + { + /// + /// 应用程序的主入口点。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new frmMain()); + } + } +} diff --git a/PdfInvoiceMerge/Properties/AssemblyInfo.cs b/PdfInvoiceMerge/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6e22b41 --- /dev/null +++ b/PdfInvoiceMerge/Properties/AssemblyInfo.cs @@ -0,0 +1,38 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("PDF 发票合并工具")] +[assembly: AssemblyDescription(@"PDF 发票合并工具,完全免费。 + +https://github.com/hetaoos/PdfInvoiceMerge")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PDF 发票合并工具")] +[assembly: AssemblyCopyright("Copyright © Null 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("094421bb-0c8c-409c-9aab-69b744fa96b8")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +// 方法是按如下所示使用“*”: : +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PdfInvoiceMerge/Properties/Resources.Designer.cs b/PdfInvoiceMerge/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e9806c4 --- /dev/null +++ b/PdfInvoiceMerge/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace PdfInvoiceMerge.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PdfInvoiceMerge.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性 + /// 重写当前线程的 CurrentUICulture 属性。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。 + /// + internal static System.Drawing.Icon Invoice { + get { + object obj = ResourceManager.GetObject("Invoice", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/PdfInvoiceMerge/Properties/Resources.resx b/PdfInvoiceMerge/Properties/Resources.resx new file mode 100644 index 0000000..26afbc7 --- /dev/null +++ b/PdfInvoiceMerge/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Invoice.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/PdfInvoiceMerge/Properties/Settings.Designer.cs b/PdfInvoiceMerge/Properties/Settings.Designer.cs new file mode 100644 index 0000000..b87b0f4 --- /dev/null +++ b/PdfInvoiceMerge/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PdfInvoiceMerge.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/PdfInvoiceMerge/Properties/Settings.settings b/PdfInvoiceMerge/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/PdfInvoiceMerge/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/PdfInvoiceMerge/Resources/Invoice.ico b/PdfInvoiceMerge/Resources/Invoice.ico new file mode 100644 index 0000000000000000000000000000000000000000..7c4ed8d35edd93473fda3c54c6146102af3bcddd GIT binary patch literal 125928 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

*oMBX^ERVBUm{RXlMhJB8!9o z=T=FCFE^#5R-g0>mBWdh#nOrX%ou5E+@X!-eQTkQh1uYiTRi{EWTokW7&R~kXhM;L zCu4UWlz(x>NQ4Ff!)(X(yke6>j}W0P`Y?W{q0Q)9ImTe_yT;-Tm}_a}UWqCNF))ko zur641if4VP=crk2Aq@v{VX7HjmIfu<20to}IeefvMM~ULZ!hvEux4`&&)w$F?%tMy zQH~~_IW>}b`hr&ffJP9{P!pJJR<01lj{kGE3fo_+BGY9N zdK1dO<@Uf&5JcldlsW2$=`u!knorbMs)Dzt$LKDK^e%c#IQ;kIosC#}{m`?;)+hzR z=mD%JTU~iQELOqi<9tP>;veK^Q~<1m+a{P#N{KBYM21jLZz9JmlYi;&BxEG*lBkMO zZGHsUUay@zl${TrL6_^D4f_z|&}eAgu64raS{QLRPLou%FS2vLUeG}i$_R@;8g85V z<_x$o+;V86eU=QUmqK4KD@dMf*HU&*UXws>1L_Fl}L+{b75lje)B>rKQG(H zwh8Sn&OqUQiPL{_47&+S$g~`TDSPJZ^^nKgE|*tKWNIZ=?|oMrl2J#BP?cALKbQy& z&8%aLZf*7KuW32yzAb#Zf1k*CCamcEcd-Kfo`BTsAjC6Aeec%JRia+S0>3ftxP$k% zV-u6ua@IcmHTUsy-JveJx6|lU)8KN0eBW?+Q?}6Gp~(QRUOasH)TyY62Gfp!4IW?^ z&ygw>C+{+4cI4NBz~e7clk$GXFB3JAC0^#4)*j)Z@OB4@$vT2@gk+li)sU&chG!w4 z3KU@=ryH{i(T1Qg+`13|P_i2MUfaIi8-2;oDBxIuGM zeM)V$|B+~fM;8v#r?|u=36=I;_Kw=P}zCA&kd+Gpk=%8(`HArqWFGM zz~@^T7pU_fpM7KVc^hKZx8FuD21rA}2g24f)h$*Ah$&v9XWvuAxEeg{2o1BfeM%$ch6 zo)V9I;^i1b;Nx&{7$IV?y+HxB*d}* zdSxK-WkH$>k}J|bbeSsq^(XCu4p?tFC%5AUJ5d_HG<=TgBTE7xn~8Z}Zgt^PaH_M?y6dm4YkBOGRkV_KQ9 zo1{>Rp|^Egtz74g;PSdgxAcG@1%px8x5!JB%BVS0jM>-?S_JkL9J2Pk8Ux+(PCQ>= ztbwsieH3?`^obZ-`YwOm%dGm(_u5|h!N;tx);%SlHFuddeO5?}mjFQZivWRkbMEz{`Vi;kT-86eSbS zCHNLuZjzS2g+ptmeZOb3?l@H+iyi#u&CTMfwK0s<&^dn-yl8Wxn-AkrsEQfY_`yvT z2NPnurszp&NJ+l3+`fSiY^Cc3obAGl_bMxN-fipQw5KV9Yk{*S8|fGI5W;Fkk^E?; zCXON$0`{*jOAin8W=sa~c#DPTS74`{3niMW7VE|7RvZaSN=g8!6t(kM^I{ptw zz;RzAoYv5ASL&hNWjpeZ3NqJ60DS^_EU>YSJ(pYZ{AE_P8i zOR)_nx(ob7Mf7KurMKrK12O9reBs|1DtWPwq0%rRzofS*7GRn_=;U9hhh$1CrcbhT zElviS_rFm7JA_=k-UASNY5`h0_F@l9H*@ZwhjgIFWte(Nc)InEiqYnw>Qm35Xi=X_ zWyT3DCn_SENnn5g6uygo*)24Eo7<%c{$#Sy>R?`_MHDV7tX{k?j=~8*n`Q{h!8l5f zhks9JQf38#_YiO3Ka-u!+hc3s*Bw09k_C{5U+Lkz2VGtF=R2j#)jjwcI4e1T;P~%s ziZ$EwsDk&PsDC73+dWT&O)}KP;+wSm`mnFD>X&@4aKJQAMSZLhuydPH{6YW zRCIxv>rXHnfhI56glxgh%=1?Ey#9)H;W^{WXHo=Y!utG~xrJcXJ`ZmOX$ zkC7*;Jb}MOyIR%vbQ6{b)OW;50W+Gr**SdU0N*|Va`M11VRrFkJd-5P%iZ6{#HjJE zjeQa%M}<>G#~iqHXV3h)Q}q!Jh)`v&@g{c9dl+|u(NY=Y*0#0*IYO5!<(AHVx<}_V zE#fCKXGf}k45<6z(ivUIl`-@|g^!ugm>E7dg^%Zr(Amq0PcQAWJz;Pl%jV?U^b}0f zX<*d6CWwYACFl&|-bE(PYOBwTDhh&`_c4p-f>ZlbPXP1_b(P0gdv^c^#Hn*aUxThyEIlEmS3dYl{9-*MJOU01n(rXiTH~^ zsWux#&J8-sTr}YQZ^x zV+g7ICMsSb(kO$FlJUs4FIddOqwVv7F5Vx^UU{wjn)Jimzj|-AZ3w(+ zh|7q(TDcEBwy#p+4L%%A`SBBgE^06NKW{#3O1=qvYqWh3onbr zdc2FnL5l73DL2!uX z1f#J0wkw489R{j)`$@$4vz#GjVCWd6zIvLNhbT_Oy4TY5esOVvkk5iLP4?>9KBgt; za(!K-aLuXF^P0O^1pMDxDR}FgRRWU22ej$wcd;t?0MLDr(tPZ?%&h#LJ+}Cvc#97zY8uYYI9g=F z_ekZ!0=$l3@kYCs{%c2(sal#3Tk{SP@fDZ$nhPwTZ`})vRm!WCkx#(ans?@;)va!W zm*Kg;TZXt#6ZuU-jq0y@C7^|Xp~77!5v=UA9({NN>z?{BP(OjeB|pn#}; zlr{GDz0>)k1|nKdo6cv)HRy{JJk*-3vh#aeY(}lCX;HFzXy2engL7Um-=^Pi ze&_!{Eb@kanN5l#_=%h(zUAv5G7bEC(w9~H*ndGGq{Bqrl=;{GsJc%scYW(agh9~a zY=xMR?VLu3L?X*0T)O70>D}sWD6;ccyO5>9IMh1ZKEcLb$o*JK4`4_kghOhrOL1i~ z3e)eEJ9@~ay&$!z42qJe*3#>Lu_L^gZ-)hx{{zGEUoc0TjKa@YvXDe_${d~Y|C(6x ezZ4d>K)i#pNzNzhYX1uZa=7Sxq0Tno{(k@n!c)rt literal 0 HcmV?d00001 diff --git a/PdfInvoiceMerge/frmAbout.Designer.cs b/PdfInvoiceMerge/frmAbout.Designer.cs new file mode 100644 index 0000000..b4e3b04 --- /dev/null +++ b/PdfInvoiceMerge/frmAbout.Designer.cs @@ -0,0 +1,185 @@ +namespace PdfInvoiceMerge +{ + partial class frmAbout + { + ///

+ /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAbout)); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.logoPictureBox = new System.Windows.Forms.PictureBox(); + this.labelProductName = new System.Windows.Forms.Label(); + this.labelVersion = new System.Windows.Forms.Label(); + this.labelCopyright = new System.Windows.Forms.Label(); + this.labelCompanyName = new System.Windows.Forms.Label(); + this.textBoxDescription = new System.Windows.Forms.TextBox(); + this.okButton = new System.Windows.Forms.Button(); + this.tableLayoutPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel + // + this.tableLayoutPanel.ColumnCount = 2; + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F)); + this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F)); + this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0); + this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0); + this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1); + this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2); + this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3); + this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4); + this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5); + this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel.Location = new System.Drawing.Point(9, 8); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 6; + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel.Size = new System.Drawing.Size(417, 245); + this.tableLayoutPanel.TabIndex = 0; + // + // logoPictureBox + // + this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image"))); + this.logoPictureBox.Location = new System.Drawing.Point(3, 3); + this.logoPictureBox.Name = "logoPictureBox"; + this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6); + this.logoPictureBox.Size = new System.Drawing.Size(131, 239); + this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.logoPictureBox.TabIndex = 12; + this.logoPictureBox.TabStop = false; + // + // labelProductName + // + this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelProductName.Location = new System.Drawing.Point(143, 0); + this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); + this.labelProductName.MaximumSize = new System.Drawing.Size(0, 16); + this.labelProductName.Name = "labelProductName"; + this.labelProductName.Size = new System.Drawing.Size(271, 16); + this.labelProductName.TabIndex = 19; + this.labelProductName.Text = "产品名称"; + this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelVersion + // + this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelVersion.Location = new System.Drawing.Point(143, 24); + this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); + this.labelVersion.MaximumSize = new System.Drawing.Size(0, 16); + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Size = new System.Drawing.Size(271, 16); + this.labelVersion.TabIndex = 0; + this.labelVersion.Text = "版本"; + this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelCopyright + // + this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelCopyright.Location = new System.Drawing.Point(143, 48); + this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); + this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 16); + this.labelCopyright.Name = "labelCopyright"; + this.labelCopyright.Size = new System.Drawing.Size(271, 16); + this.labelCopyright.TabIndex = 21; + this.labelCopyright.Text = "版权"; + this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelCompanyName + // + this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelCompanyName.Location = new System.Drawing.Point(143, 72); + this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0); + this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 16); + this.labelCompanyName.Name = "labelCompanyName"; + this.labelCompanyName.Size = new System.Drawing.Size(271, 16); + this.labelCompanyName.TabIndex = 22; + this.labelCompanyName.Text = "公司名称"; + this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBoxDescription + // + this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBoxDescription.Location = new System.Drawing.Point(143, 99); + this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); + this.textBoxDescription.Multiline = true; + this.textBoxDescription.Name = "textBoxDescription"; + this.textBoxDescription.ReadOnly = true; + this.textBoxDescription.Size = new System.Drawing.Size(271, 116); + this.textBoxDescription.TabIndex = 23; + this.textBoxDescription.TabStop = false; + this.textBoxDescription.Text = "说明"; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.okButton.Location = new System.Drawing.Point(339, 221); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 21); + this.okButton.TabIndex = 24; + this.okButton.Text = "确定(&O)"; + // + // frmAbout + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(435, 261); + this.Controls.Add(this.tableLayoutPanel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmAbout"; + this.Padding = new System.Windows.Forms.Padding(9, 8, 9, 8); + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "frmAbout"; + this.tableLayoutPanel.ResumeLayout(false); + this.tableLayoutPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; + private System.Windows.Forms.PictureBox logoPictureBox; + private System.Windows.Forms.Label labelProductName; + private System.Windows.Forms.Label labelVersion; + private System.Windows.Forms.Label labelCopyright; + private System.Windows.Forms.Label labelCompanyName; + private System.Windows.Forms.TextBox textBoxDescription; + private System.Windows.Forms.Button okButton; + } +} diff --git a/PdfInvoiceMerge/frmAbout.cs b/PdfInvoiceMerge/frmAbout.cs new file mode 100644 index 0000000..6fb7b8c --- /dev/null +++ b/PdfInvoiceMerge/frmAbout.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PdfInvoiceMerge +{ + partial class frmAbout : Form + { + public frmAbout() + { + InitializeComponent(); + this.Text = String.Format("关于 {0}", AssemblyTitle); + this.labelProductName.Text = AssemblyProduct; + this.labelVersion.Text = String.Format("版本 {0}", AssemblyVersion); + this.labelCopyright.Text = AssemblyCopyright; + this.labelCompanyName.Text = AssemblyCompany; + this.textBoxDescription.Text = AssemblyDescription; + } + + #region 程序集特性访问器 + + public string AssemblyTitle + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); + if (attributes.Length > 0) + { + AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; + if (titleAttribute.Title != "") + { + return titleAttribute.Title; + } + } + return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + } + } + + public string AssemblyVersion + { + get + { + return Assembly.GetExecutingAssembly().GetName().Version.ToString(); + } + } + + public string AssemblyDescription + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyDescriptionAttribute)attributes[0]).Description; + } + } + + public string AssemblyProduct + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyProductAttribute)attributes[0]).Product; + } + } + + public string AssemblyCopyright + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + } + + public string AssemblyCompany + { + get + { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); + if (attributes.Length == 0) + { + return ""; + } + return ((AssemblyCompanyAttribute)attributes[0]).Company; + } + } + #endregion + } +} diff --git a/PdfInvoiceMerge/frmAbout.resx b/PdfInvoiceMerge/frmAbout.resx new file mode 100644 index 0000000..76cc9af --- /dev/null +++ b/PdfInvoiceMerge/frmAbout.resx @@ -0,0 +1,603 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/PdfInvoiceMerge/frmMain.Designer.cs b/PdfInvoiceMerge/frmMain.Designer.cs new file mode 100644 index 0000000..18e3fad --- /dev/null +++ b/PdfInvoiceMerge/frmMain.Designer.cs @@ -0,0 +1,251 @@ +namespace PdfInvoiceMerge +{ + partial class frmMain + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows 窗体设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要修改 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.btnAdd = new System.Windows.Forms.ToolStripButton(); + this.btnClear = new System.Windows.Forms.ToolStripButton(); + this.cmbMergeType = new System.Windows.Forms.ToolStripComboBox(); + this.btnMerge = new System.Windows.Forms.ToolStripButton(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.labInfo = new System.Windows.Forms.ToolStripStatusLabel(); + this.listInvoices = new System.Windows.Forms.ListBox(); + this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStrip1.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.statusStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btnAdd, + this.btnClear, + this.cmbMergeType, + this.btnMerge}); + this.toolStrip1.Location = new System.Drawing.Point(0, 25); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(758, 25); + this.toolStrip1.TabIndex = 1; + this.toolStrip1.Text = "toolStrip1"; + // + // btnAdd + // + this.btnAdd.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.btnAdd.Image = ((System.Drawing.Image)(resources.GetObject("btnAdd.Image"))); + this.btnAdd.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(76, 22); + this.btnAdd.Text = "添加发票(&A)"; + this.btnAdd.ToolTipText = "添加发票,支持拖拽添加发票文件"; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnClear + // + this.btnClear.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.btnClear.Image = ((System.Drawing.Image)(resources.GetObject("btnClear.Image"))); + this.btnClear.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(52, 22); + this.btnClear.Text = "清空(&C)"; + this.btnClear.ToolTipText = "清空发票列表,也可以选中后按 DELETE 键删除。"; + this.btnClear.Click += new System.EventHandler(this.btnClear_Click); + // + // cmbMergeType + // + this.cmbMergeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbMergeType.Items.AddRange(new object[] { + "每页一张发票", + "每页两张发票", + "每页四张发票"}); + this.cmbMergeType.Name = "cmbMergeType"; + this.cmbMergeType.Size = new System.Drawing.Size(121, 25); + this.cmbMergeType.ToolTipText = "输出样式"; + // + // btnMerge + // + this.btnMerge.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.btnMerge.Image = ((System.Drawing.Image)(resources.GetObject("btnMerge.Image"))); + this.btnMerge.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnMerge.Name = "btnMerge"; + this.btnMerge.Size = new System.Drawing.Size(56, 22); + this.btnMerge.Text = "合并(&M)"; + this.btnMerge.ToolTipText = "将发票合并后输出。"; + this.btnMerge.Click += new System.EventHandler(this.btnMerge_Click); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.helpToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(758, 25); + this.menuStrip1.TabIndex = 2; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.exitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(58, 21); + this.fileToolStripMenuItem.Text = "文件(&F)"; + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.exitToolStripMenuItem.Text = "退出(&X)"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.sourceToolStripMenuItem, + this.aboutToolStripMenuItem}); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(61, 21); + this.helpToolStripMenuItem.Text = "帮助(&H)"; + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.labInfo}); + this.statusStrip1.Location = new System.Drawing.Point(0, 373); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(758, 22); + this.statusStrip1.TabIndex = 3; + this.statusStrip1.Text = "statusStrip1"; + // + // labInfo + // + this.labInfo.Name = "labInfo"; + this.labInfo.Size = new System.Drawing.Size(35, 17); + this.labInfo.Text = "就绪."; + // + // listInvoices + // + this.listInvoices.Dock = System.Windows.Forms.DockStyle.Fill; + this.listInvoices.FormattingEnabled = true; + this.listInvoices.ItemHeight = 21; + this.listInvoices.Location = new System.Drawing.Point(0, 50); + this.listInvoices.Name = "listInvoices"; + this.listInvoices.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.listInvoices.Size = new System.Drawing.Size(758, 323); + this.listInvoices.Sorted = true; + this.listInvoices.TabIndex = 4; + this.listInvoices.DoubleClick += new System.EventHandler(this.listInvoices_DoubleClick); + this.listInvoices.KeyUp += new System.Windows.Forms.KeyEventHandler(this.listInvoices_KeyUp); + // + // saveFileDialog1 + // + this.saveFileDialog1.Filter = "PDF 文件|*.pdf"; + // + // openFileDialog1 + // + this.openFileDialog1.Filter = "PDF 发票文件|*.pdf"; + this.openFileDialog1.Multiselect = true; + this.openFileDialog1.Title = "PDF 发票"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.aboutToolStripMenuItem.Text = "关于(&A)"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // sourceToolStripMenuItem + // + this.sourceToolStripMenuItem.Name = "sourceToolStripMenuItem"; + this.sourceToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.sourceToolStripMenuItem.Text = "源码(&S)"; + this.sourceToolStripMenuItem.Click += new System.EventHandler(this.sourceToolStripMenuItem_Click); + // + // frmMain + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(758, 395); + this.Controls.Add(this.listInvoices); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.toolStrip1); + this.Controls.Add(this.menuStrip1); + this.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.KeyPreview = true; + this.MainMenuStrip = this.menuStrip1; + this.Margin = new System.Windows.Forms.Padding(5); + this.MaximizeBox = false; + this.Name = "frmMain"; + this.Text = "PDF 发票合并工具"; + this.Load += new System.EventHandler(this.frmMain_Load); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.frmMain_DragDrop); + this.DragEnter += new System.Windows.Forms.DragEventHandler(this.frmMain_DragEnter); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel labInfo; + private System.Windows.Forms.ListBox listInvoices; + private System.Windows.Forms.ToolStripButton btnAdd; + private System.Windows.Forms.SaveFileDialog saveFileDialog1; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.ToolStripButton btnClear; + private System.Windows.Forms.ToolStripButton btnMerge; + private System.Windows.Forms.ToolStripComboBox cmbMergeType; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem sourceToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + } +} + diff --git a/PdfInvoiceMerge/frmMain.cs b/PdfInvoiceMerge/frmMain.cs new file mode 100644 index 0000000..3a2d089 --- /dev/null +++ b/PdfInvoiceMerge/frmMain.cs @@ -0,0 +1,360 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using iTextSharp.awt.geom; +using iTextSharp.text; +using iTextSharp.text.pdf; + +namespace PdfInvoiceMerge +{ + public partial class frmMain : Form + { + public frmMain() + { + InitializeComponent(); + this.Icon = PdfInvoiceMerge.Properties.Resources.Invoice; + RefreshState(); + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + var dlg = openFileDialog1.ShowDialog(); + if (dlg != DialogResult.OK) + return; + listInvoices.Items.AddRange(openFileDialog1.FileNames); + RefreshState(); + } + + private void btnClear_Click(object sender, EventArgs e) + { + listInvoices.Items.Clear(); + RefreshState(); + } + + private void RefreshState() + { + var has = listInvoices.Items.Count > 0; + labInfo.Text = has ? $"共 { listInvoices.Items.Count} 张发票" : "就绪"; + btnClear.Enabled = has; + btnMerge.Enabled = has; + if (has && listInvoices.SelectedIndex < 0) + listInvoices.SelectedIndex = 0; + } + + private void listInvoices_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyData != Keys.Delete) + return; + var values = listInvoices.SelectedItems.OfType().ToArray(); + if (values.Length == 0) + return; + else if (values.Length == 1) + { + var index = listInvoices.SelectedIndex; + listInvoices.Items.RemoveAt(index); + if (index < listInvoices.Items.Count) + listInvoices.SelectedIndex = index; + else if (listInvoices.Items.Count > 0) + listInvoices.SelectedIndex = listInvoices.Items.Count - 1; + RefreshState(); + } + else + { + foreach (var value in values) + listInvoices.Items.Remove(value); + RefreshState(); + } + } + + private void listInvoices_DoubleClick(object sender, EventArgs e) + { + if (listInvoices.SelectedIndex >= 0) + { + Process.Start(listInvoices.SelectedItem as string); + } + } + + private void frmMain_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + e.Effect = DragDropEffects.Link; + else + e.Effect = DragDropEffects.None; + } + + private void frmMain_DragDrop(object sender, DragEventArgs e) + { + var items = (Array)e.Data.GetData(DataFormats.FileDrop); + var files = new List(); + foreach (object item in items) + { + string path = item.ToString(); + var info = new FileInfo(path); + + if (info.Attributes.HasFlag(FileAttributes.Directory)) + files.AddRange(Directory.GetFiles(path, "*.pdf", SearchOption.AllDirectories)); + else if (File.Exists(path) && path.EndsWith(".pdf", StringComparison.CurrentCultureIgnoreCase)) + files.Add(path); + } + if (files.Any()) + { + listInvoices.Items.AddRange(files.ToArray()); + RefreshState(); + } + } + + private void frmMain_Load(object sender, EventArgs e) + { + cmbMergeType.SelectedIndex = 1; + } + + private void btnMerge_Click(object sender, EventArgs e) + { + if (listInvoices.Items.Count == 0) + { + MessageBox.Show("请先添加至少一张发票。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var dlg = saveFileDialog1.ShowDialog(); + if (dlg != DialogResult.OK) + return; + var type = cmbMergeType.SelectedIndex; + + var files = listInvoices.Items.Cast().ToList(); + try + { + switch (cmbMergeType.SelectedIndex) + { + case 0: + Merge1(files, saveFileDialog1.FileName); + break; + case 1: + default: + Merge2(files, saveFileDialog1.FileName); + break; + case 2: + Merge4(files, saveFileDialog1.FileName); + break; + } + + Process.Start(saveFileDialog1.FileName); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "合并失败", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + } + + /// + /// 每页一张发票 + /// + /// + /// + public static void Merge1(IEnumerable files, string outputFile) + { + Document document = new Document(); + try + { + using (FileStream newFileStream = new FileStream(outputFile, FileMode.Create)) + { + PdfCopy writer = new PdfCopy(document, newFileStream); + if (writer == null) + { + return; + } + + document.Open(); + + foreach (string file in files) + { + PdfReader reader = new PdfReader(file); + reader.ConsolidateNamedDestinations(); + + for (int i = 1; i <= reader.NumberOfPages; i++) + { + PdfImportedPage page = writer.GetImportedPage(reader, i); + writer.AddPage(page); + } + reader.Close(); + } + writer.Close(); + } + } + catch (Exception e) + { + throw e; + } + finally + { + document.Close(); + } + } + + + /// + /// 每页两张发票 + /// + /// + /// + public static void Merge2(IEnumerable files, string outputFile) + { + var queue = new ConcurrentQueue(files); + var document = new Document(); + var margin = 20; + try + { + var writer = PdfWriter.GetInstance(document, new FileStream(outputFile, FileMode.Create)); + var size = PageSize.A4; + document.Open(); + document.SetPageSize(size); + PdfContentByte cb = writer.DirectContent; + + do + { + document.NewPage(); + if (TryAppendPage(true) == false) + break; + if (TryAppendPage(false) == false) + break; + } while (true); + + bool TryAppendPage(bool top) + { + if (queue.TryDequeue(out var p) == false) + return false; + + var reader = new PdfReader(p); + var page = writer.GetImportedPage(reader, 1); + + AffineTransform af = new AffineTransform(); + + var scaleHeight = (size.Height - margin * 4) / 2 / page.Height; + var scaleWidth = (size.Width - margin * 2) / page.Width; + var scale = Math.Min(scaleHeight, scaleWidth); + + var height = ((size.Height - margin * 4) / 2 - scale * page.Height) / 2; + var width = ((size.Width - margin * 2) - scale * page.Width) / 2; + + af.Translate(margin + width, margin + height + (top ? size.Height / 2 : 0)); + af.Scale(scale, scale); + + cb.AddTemplate(page, af); + return true; + } + } + catch (Exception e) + { + throw e; + } + finally + { + document.Close(); + } + } + + + /// + /// 每页两张发票 + /// + /// + /// + public static void Merge4(IEnumerable files, string outputFile) + { + var queue = new ConcurrentQueue(files); + var document = new Document(); + var margin = 20; + try + { + var writer = PdfWriter.GetInstance(document, new FileStream(outputFile, FileMode.Create)); + var size = PageSize.A4.Rotate(); + document.Open(); + document.SetPageSize(size); + PdfContentByte cb = writer.DirectContent; + + do + { + document.NewPage(); + for (int i = 0; i < 4; i++) + { + if (TryAppendPage(i) == false) + break; + } + } while (queue.Count > 0); + + bool TryAppendPage(int type) + { + if (queue.TryDequeue(out var p) == false) + return false; + + var reader = new PdfReader(p); + var page = writer.GetImportedPage(reader, 1); + + AffineTransform af = new AffineTransform(); + + var scaleHeight = (size.Height - margin * 4) / 2 / page.Height; + var scaleWidth = (size.Width - margin * 4) / 2 / page.Width; + var scale = Math.Min(scaleHeight, scaleWidth); + + var height = ((size.Height - margin * 4) / 2 - scale * page.Height) / 2; + var width = ((size.Width - margin * 4) / 2 - scale * page.Width) / 2; + + switch (type) + { + case 2: + default: + af.Translate(margin + width, margin + height); + break; + case 3: + af.Translate(margin + width + size.Width / 2, margin + height); + break; + case 0: + af.Translate(margin + width, margin + height + size.Height / 2); + break; + case 1: + af.Translate(margin + width + size.Width / 2, margin + height + size.Height / 2); + break; + } + af.Scale(scale, scale); + + cb.AddTemplate(page, af); + return true; + } + } + catch (Exception e) + { + throw e; + } + finally + { + document.Close(); + } + } + + private void sourceToolStripMenuItem_Click(object sender, EventArgs e) + { + Process.Start("https://github.com/hetaoos/PdfInvoiceMerge"); + } + + private void aboutToolStripMenuItem_Click(object sender, EventArgs e) + { + var frm = new frmAbout(); + frm.ShowDialog(); + } + } +} diff --git a/PdfInvoiceMerge/frmMain.resx b/PdfInvoiceMerge/frmMain.resx new file mode 100644 index 0000000..4562a1f --- /dev/null +++ b/PdfInvoiceMerge/frmMain.resx @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 182, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 292, 17 + + + 412, 17 + + + 533, 17 + + + 677, 17 + + \ No newline at end of file diff --git a/README.md b/README.md index e19255d..f209243 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# PdfInvoiceMerge -PDF 发票合并工具 +## PDF 发票合并工具 + +**功能**:将多张PDF发票按每页一张、两张或四张合成一个单一的PDF文件,方便打印。