diff --git a/icon.png b/icon.png new file mode 100644 index 00000000..c006a7ec Binary files /dev/null and b/icon.png differ diff --git a/src/BuildAll-PdfSharp.sln b/src/BuildAll-PdfSharp.sln index 51818cd7..3c0b4671 100644 --- a/src/BuildAll-PdfSharp.sln +++ b/src/BuildAll-PdfSharp.sln @@ -1,19 +1,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.421 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDFsharp", "PdfSharp\PDFsharp.csproj", "{5A6055BC-BF86-4FDD-9F62-0109DB7A303B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PDFsharp", "PdfSharp\PDFsharp.csproj", "{5A6055BC-BF86-4FDD-9F62-0109DB7A303B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfSharp.Charting", "PdfSharp.Charting\PdfSharp.Charting.csproj", "{6F98A822-41B0-4C7A-85A6-E95C1D3E88EF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfSharp-gdi", "PdfSharp-gdi\PdfSharp-gdi.csproj", "{5384CE57-1F94-4D22-860D-2E9C1AC12DDF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfSharp.Charting-gdi", "PdfSharp.Charting-gdi\PdfSharp.Charting-gdi.csproj", "{CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfSharp-wpf", "PdfSharp-wpf\PdfSharp-wpf.csproj", "{02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PdfSharp.Charting-wpf", "PdfSharp.Charting-wpf\PdfSharp.Charting-wpf.csproj", "{E6A2734E-0CD6-4210-8AEC-47EE348F8D78}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -62,72 +54,11 @@ Global {6F98A822-41B0-4C7A-85A6-E95C1D3E88EF}.Release|Win32.ActiveCfg = Release|Any CPU {6F98A822-41B0-4C7A-85A6-E95C1D3E88EF}.Release|x64.ActiveCfg = Release|Any CPU {6F98A822-41B0-4C7A-85A6-E95C1D3E88EF}.Release|x86.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|ARM.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|Win32.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|x64.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Debug|x86.ActiveCfg = Debug|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|Any CPU.Build.0 = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|ARM.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|Win32.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|x64.ActiveCfg = Release|Any CPU - {5384CE57-1F94-4D22-860D-2E9C1AC12DDF}.Release|x86.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|ARM.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|Win32.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|x64.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Debug|x86.ActiveCfg = Debug|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|Any CPU.Build.0 = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|ARM.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|Win32.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|x64.ActiveCfg = Release|Any CPU - {CFDB7D46-EA8D-47DE-B10A-9E755A1B48BA}.Release|x86.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|ARM.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|x64.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Debug|x86.ActiveCfg = Debug|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|Any CPU.Build.0 = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|ARM.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|Win32.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|x64.ActiveCfg = Release|Any CPU - {02FCC0BB-2AA2-43BA-8D2F-66D168B87A1D}.Release|x86.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|ARM.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|x64.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Debug|x86.ActiveCfg = Debug|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|Any CPU.Build.0 = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|ARM.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|Win32.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|x64.ActiveCfg = Release|Any CPU - {E6A2734E-0CD6-4210-8AEC-47EE348F8D78}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {615BA279-87C0-42F8-9030-1CE7F35B1554} + EndGlobalSection EndGlobal diff --git a/src/PdfSharp.Charting/PdfSharp.Charting.csproj b/src/PdfSharp.Charting/PdfSharp.Charting.csproj index c141b9fe..697d0e59 100644 --- a/src/PdfSharp.Charting/PdfSharp.Charting.csproj +++ b/src/PdfSharp.Charting/PdfSharp.Charting.csproj @@ -1,49 +1,34 @@ - - - + - Debug - AnyCPU - {6F98A822-41B0-4C7A-85A6-E95C1D3E88EF} - Library - Properties - PdfSharp + netstandard2.0 + $(DefineConstants);CORE;CORE_WITH_GDI PdfSharp.Charting - v3.5 - 512 - SAK - SAK - SAK - SAK - - - - true - full - false - bin\Debug\ - TRACE;DEBUG;CORE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE;CORE - prompt - 4 - bin\Release\PdfSharp.Charting.xml - - + PDFSharp.Charting.NetStandard2 + 0 + 1.51.5185 + false + false + false + false + false + false + false + PdfSharp.Charting + false + https://github.com/LionelVallet/PDFsharp true - - StrongnameKey.snk + empira Software GmbH, Lionel Vallet + PDFSharp, NET, Standard, Core, PDF, Charting + true + icon.png + PDFsharp is the Open Source .NET library that easily creates and processes PDF documents on the fly from any .NET language. The same drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. + +This is the .NET Standard version of the PDFsharp PDF Core package. See Project Information for details. + LICENSE - - + @@ -143,21 +128,20 @@ - - - {5a6055bc-bf86-4fdd-9f62-0109db7a303b} PdfSharp - - + + + True + + + + True + + + \ No newline at end of file diff --git a/src/PdfSharp.Charting/Properties/AssemblyInfo.cs b/src/PdfSharp.Charting/Properties/AssemblyInfo.cs index 136e51f3..8c42b1a0 100644 --- a/src/PdfSharp.Charting/Properties/AssemblyInfo.cs +++ b/src/PdfSharp.Charting/Properties/AssemblyInfo.cs @@ -37,13 +37,13 @@ // [assembly: AssemblyTitle("PDFsharp Charting")] [assembly: AssemblyVersion(PdfSharp.ProductVersionInfo.Version)] -[assembly: AssemblyDescription("A .NET charting library based on PDFsharp.")] +[assembly: AssemblyDescription("A .NET charting library based on PDFsharp. (.NET Standard)")] [assembly: AssemblyConfiguration(PdfSharp.ProductVersionInfo.Configuration)] [assembly: AssemblyCompany(PdfSharp.ProductVersionInfo.Company)] #if DEBUG [assembly: AssemblyProduct(PdfSharp.ProductVersionInfo.Product + " (Debug Build)")] #else - [assembly: AssemblyProduct(PdfSharp.ProductVersionInfo.Product)] + [assembly: AssemblyProduct("PDFSharp.Charting.NetStandard2")] #endif [assembly: AssemblyCopyright(PdfSharp.ProductVersionInfo.Copyright)] [assembly: AssemblyTrademark(PdfSharp.ProductVersionInfo.Trademark)] diff --git a/src/PdfSharp/Drawing/XFontSource.cs b/src/PdfSharp/Drawing/XFontSource.cs index 6b3a5781..07115dae 100644 --- a/src/PdfSharp/Drawing/XFontSource.cs +++ b/src/PdfSharp/Drawing/XFontSource.cs @@ -37,16 +37,11 @@ using GdiFont = System.Drawing.Font; using GdiFontStyle = System.Drawing.FontStyle; #endif -#if WPF -using System.Windows; -using System.Windows.Documents; -using System.Windows.Media; -using WpfFontFamily = System.Windows.Media.FontFamily; -using WpfTypeface = System.Windows.Media.Typeface; -using WpfGlyphTypeface = System.Windows.Media.GlyphTypeface; -#endif using PdfSharp.Internal; using PdfSharp.Fonts.OpenType; +using System.Collections.Generic; +using System.Reflection; +using System.Linq; namespace PdfSharp.Drawing { @@ -66,6 +61,66 @@ internal class XFontSource // Signature of a true type collection font. const uint ttcf = 0x66637474; + /// + /// (fontName, fileName) + /// + internal static Dictionary FontFilePaths = new Dictionary(); + static XFontSource() + { + var searchingPaths = new List(); + // Application + var executingPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + searchingPaths.Add(executingPath); + // Windows + var systemFontsPath = Environment.GetFolderPath(Environment.SpecialFolder.Fonts); + if (!string.IsNullOrWhiteSpace(systemFontsPath)) + { + searchingPaths.Add(systemFontsPath); + } + else + { + // Debian + searchingPaths.Add("/usr/share/fonts/truetype"); + //searchingPaths.Add("/usr/share/X11/fonts"); + //searchingPaths.Add("/usr/X11R6/lib/X11/fonts"); + //searchingPaths.Add("~/.fonts"); + } + + foreach (var searchingPath in searchingPaths) + { + // TODO: *.ttc not supported yet! + var fileNames = new List(); + try + { + fileNames = Directory.GetFiles(searchingPath, "*.ttf", SearchOption.AllDirectories).ToList(); + } + catch (Exception ex) + { + Debug.WriteLine(ex); + continue; + } + + foreach (var fileName in fileNames) + { + try + { + var fontCollection = new System.Drawing.Text.PrivateFontCollection(); + fontCollection.AddFontFile(fileName); + var fontName = fontCollection.Families[0].Name; + if (!FontFilePaths.ContainsKey(fontName)) + { + FontFilePaths.Add(fontName, fileName); + Debug.WriteLine($"Add font {fontName}: {fileName}"); + } + } + catch (Exception ex) + { + Debug.WriteLine(ex); + } + } + } + } + XFontSource(byte[] bytes, ulong key) { _fontName = null; @@ -90,7 +145,6 @@ public static XFontSource GetOrCreateFrom(byte[] bytes) return fontSource; } -#if CORE || GDI internal static XFontSource GetOrCreateFromGdi(string typefaceKey, GdiFont gdiFont) { byte[] bytes = ReadFontBytesFromGdi(gdiFont); @@ -100,100 +154,30 @@ internal static XFontSource GetOrCreateFromGdi(string typefaceKey, GdiFont gdiFo static byte[] ReadFontBytesFromGdi(GdiFont gdiFont) { - // Weird: LastError is always 123 or 127. Comment out Debug.Assert. - int error = Marshal.GetLastWin32Error(); - //Debug.Assert(error == 0); - error = Marshal.GetLastWin32Error(); - //Debug.Assert(error == 0); - - IntPtr hfont = gdiFont.ToHfont(); -#if true - IntPtr hdc = NativeMethods.GetDC(IntPtr.Zero); -#else - NativeMethods.LOGFONT logFont = new NativeMethods.LOGFONT(); - logFont.lfHeight = 30; - logFont.lfWidth = 0; - logFont.lfEscapement = 0; - logFont.lfOrientation = 0; - logFont.lfWeight = 400; - logFont.lfItalic = 0; - logFont.lfUnderline = 0; - logFont.lfStrikeOut = 0; - logFont.lfCharSet = 0; - logFont.lfOutPrecision = 0; - logFont.lfClipPrecision = 0; - logFont.lfQuality = 0; - logFont.lfPitchAndFamily = 0; - logFont.lfFaceName = "Arial"; - - gdiFont.ToLogFont(logFont); - - hfont = NativeMethods.CreateFontIndirect(logFont); - - - // IntPtr hdc = NativeMethods.CreateDC("DISPLAY", null, null, IntPtr.Zero); - IntPtr hdc = NativeMethods.CreateCompatibleDC(IntPtr.Zero); -#endif - error = Marshal.GetLastWin32Error(); - //Debug.Assert(error == 0); - - IntPtr oldFont = NativeMethods.SelectObject(hdc, hfont); - error = Marshal.GetLastWin32Error(); - //Debug.Assert(error == 0); - - // Get size of the font file. - bool isTtcf = false; - // In Azure I get 0xc0000022 - int size = NativeMethods.GetFontData(hdc, 0, 0, null, 0); - - // Check for ntstatus.h: #define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L) - if ((uint)size == 0xc0000022) - throw new InvalidOperationException("Microsoft Azure returns STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L) from GetFontData. This is a bug in Azure. You must implement a FontResolver to circumvent this issue."); - - if (size == NativeMethods.GDI_ERROR) + var assembly = Assembly.GetAssembly(typeof(XFontSource)); + var fontName = gdiFont.Name; + Stream fontStream = null; { - // Assume that the font file is a true type collection. - size = NativeMethods.GetFontData(hdc, ttcf, 0, null, 0); - isTtcf = true; + if (FontFilePaths.ContainsKey(fontName)) + { + var fileName = FontFilePaths[fontName]; + fontStream = File.OpenRead(fileName); + Debug.WriteLine($"{fileName} retrieved."); + } } - error = Marshal.GetLastWin32Error(); - //Debug.Assert(error == 0); - - if (size == 0) - throw new InvalidOperationException("Cannot retrieve font data."); - - byte[] bytes = new byte[size]; - int effectiveSize = NativeMethods.GetFontData(hdc, isTtcf ? ttcf : 0, 0, bytes, size); - Debug.Assert(size == effectiveSize); - // Clean up. - NativeMethods.SelectObject(hdc, oldFont); - NativeMethods.ReleaseDC(IntPtr.Zero, hdc); - return bytes; - } -#endif - -#if WPF && !SILVERLIGHT - internal static XFontSource GetOrCreateFromWpf(string typefaceKey, WpfGlyphTypeface wpfGlyphTypeface) - { - byte[] bytes = ReadFontBytesFromWpf(wpfGlyphTypeface); - XFontSource fontSource = GetOrCreateFrom(typefaceKey, bytes); - return fontSource; - } - - internal static byte[] ReadFontBytesFromWpf(WpfGlyphTypeface wpfGlyphTypeface) - { - using (Stream fontStream = wpfGlyphTypeface.GetFontStream()) + // 3.default + if (fontStream == null) { - if (fontStream == null) - throw new InvalidOperationException("Cannot retrieve font data."); - int size = (int)fontStream.Length; - byte[] bytes = new byte[size]; - fontStream.Read(bytes, 0, size); - return bytes; + fontStream = assembly.GetManifestResourceStream($"PdfSharp.Assets.stsong.ttf"); + Debug.WriteLine($"{fontName} not found, replaced by default stsong.ttf"); } + + // to output + var fontData = new byte[fontStream.Length]; + fontStream.Read(fontData, 0, (int)fontStream.Length); + return fontData; } -#endif static XFontSource GetOrCreateFrom(string typefaceKey, byte[] fontBytes) { diff --git a/src/PdfSharp/Pdf.Internal/PdfEncoders.cs b/src/PdfSharp/Pdf.Internal/PdfEncoders.cs index 661d4dc6..a2fb9195 100644 --- a/src/PdfSharp/Pdf.Internal/PdfEncoders.cs +++ b/src/PdfSharp/Pdf.Internal/PdfEncoders.cs @@ -398,6 +398,7 @@ public static byte[] FormatStringLiteral(byte[] bytes, bool unicode, bool prefix } else { + securityHandler?.EncryptBytes(bytes); pdf.Append('<'); for (int idx = 0; idx < count; idx++) pdf.AppendFormat("{0:X2}", bytes[idx]); diff --git a/src/PdfSharp/PdfSharp.csproj b/src/PdfSharp/PdfSharp.csproj index cdae9caf..96548b98 100644 --- a/src/PdfSharp/PdfSharp.csproj +++ b/src/PdfSharp/PdfSharp.csproj @@ -1,55 +1,31 @@ - - - - - Debug - AnyCPU - {5A6055BC-BF86-4FDD-9F62-0109DB7A303B} - Library - Properties - PdfSharp - PdfSharp - v3.5 - 512 - SAK - SAK - SAK - SAK - - - - true - full - false - bin\Debug\ - TRACE;DEBUG;CORE;CORE_WITH_GDI - prompt - 4 - false - true - false - - - pdbonly - true - bin\Release\ - TRACE;CORE;CORE_WITH_GDI - prompt - 4 - false - bin\Release\PdfSharp.xml - + + netstandard2.0 + $(DefineConstants);CORE;CORE_WITH_GDI + false + false + false + false + false + false + false + false + true + https://github.com/LionelVallet/PDFsharp + 0 + 1.51.5185 + empira Software GmbH, Lionel Vallet + PDFSharp.NetStandard2 + PDFSharp, NET, Standard, Core, PDF, Creation true - - StrongnameKey.snk + true + icon.png + PDFsharp is the Open Source .NET library that easily creates and processes PDF documents on the fly from any .NET language. The same drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. + +This is the .NET Standard version of the PDFsharp PDF Core package. See Project Information for details. + LICENSE - - - - - @@ -414,6 +390,14 @@ ResGen + + True + + + + True + + @@ -424,12 +408,8 @@ - - + + + + \ No newline at end of file diff --git a/src/PdfSharp/Properties/AssemblyInfo.cs b/src/PdfSharp/Properties/AssemblyInfo.cs index 37640488..4bc37cb8 100644 --- a/src/PdfSharp/Properties/AssemblyInfo.cs +++ b/src/PdfSharp/Properties/AssemblyInfo.cs @@ -37,13 +37,13 @@ [assembly: AssemblyTitle(PdfSharp.VersionInfo.Title)] [assembly: AssemblyVersion(PdfSharp.VersionInfo.Version)] -[assembly: AssemblyDescription(PdfSharp.VersionInfo.Description)] +[assembly: AssemblyDescription("A .NET library for processing PDF. (.NET Standard)")] [assembly: AssemblyConfiguration(PdfSharp.VersionInfo.Configuration)] [assembly: AssemblyCompany(PdfSharp.VersionInfo.Company)] #if DEBUG [assembly: AssemblyProduct(PdfSharp.ProductVersionInfo.Product + " (Debug Build)")] #else - [assembly: AssemblyProduct(PdfSharp.ProductVersionInfo.Product)] + [assembly: AssemblyProduct("PDFSharp.NetStandard2")] #endif [assembly: AssemblyCopyright(PdfSharp.VersionInfo.Copyright)] [assembly: AssemblyTrademark(PdfSharp.VersionInfo.Trademark)] diff --git a/src/PdfSharp/root/ProductVersionInfo.cs b/src/PdfSharp/root/ProductVersionInfo.cs index 0e284769..5ef81d11 100644 --- a/src/PdfSharp/root/ProductVersionInfo.cs +++ b/src/PdfSharp/root/ProductVersionInfo.cs @@ -39,12 +39,12 @@ public static class ProductVersionInfo /// /// The title of the product. /// - public const string Title = "PDFsharp"; + public const string Title = "PDFSharp"; /// /// A characteristic description of the product. /// - public const string Description = "A .NET library for processing PDF."; + public const string Description = "A .NET library for processing PDF. (.NET Standard) "; /// /// The PDF producer information string. @@ -85,7 +85,7 @@ public static class ProductVersionInfo /// /// The name the product. /// - public const string Product = "PDFsharp"; + public const string Product = "PDFSharp.NetStandard"; /// /// The copyright information. @@ -149,13 +149,13 @@ public static class ProductVersionInfo /// or characters that are invalid in an URL. In general, they follow the same rules as .NET namespaces do. /// So Foo.Bar is a valid ID, Foo! and Foo Bar are not. /// - public const string NuGetID = "PDFsharp"; + public const string NuGetID = "PDFSharp.NetStandard"; /// /// Nuspec Doc: The human-friendly title of the package displayed in the Manage NuGet Packages dialog. /// If none is specified, the ID is used instead. /// - public const string NuGetTitle = "PDFsharp"; + public const string NuGetTitle = "PDFSharp.NetStandard"; /// /// Nuspec Doc: A comma-separated list of authors of the package code.