- 3.0.8.0 2026-08-03 Correcciones clase FirmaCanvas
This commit is contained in:
@@ -1,6 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -14,6 +14,8 @@
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -48,16 +50,83 @@
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="BouncyCastle.Crypto, Version=1.9.0.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.9, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.9\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.9.0.9\lib\net462\Microsoft.Extensions.DependencyInjection.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.9\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.9.0.9\lib\net462\Microsoft.Extensions.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.9\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Options, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Options.9.0.9\lib\net462\Microsoft.Extensions.Options.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.Primitives, Version=9.0.0.9, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Extensions.Primitives.9.0.9\lib\net462\Microsoft.Extensions.Primitives.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource, Version=9.0.0.9, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.9.0.9\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ValueTuple" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="TSpdf.bouncy-castle-adapter, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.bouncy-castle-adapter.3.0.4\lib\net48\TSpdf.bouncy-castle-adapter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TSpdf.bouncy-castle-connector, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.bouncy-castle-connector.3.0.4\lib\net48\TSpdf.bouncy-castle-connector.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TSpdf.bouncy-castle-fips-adapter, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.bouncy-castle-fips-adapter.3.0.4\lib\netstandard2.0\TSpdf.bouncy-castle-fips-adapter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TSpdf.commons, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.commons.3.0.4\lib\net48\TSpdf.commons.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TSpdf.io, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.io.3.0.4\lib\net48\TSpdf.io.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TSpdf.kernel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TSpdf.kernel.3.0.4\lib\net48\TSpdf.kernel.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
@@ -118,6 +187,7 @@
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\tsPDFUtilsCore\tsPDFUtilsCore.csproj">
|
||||
@@ -130,4 +200,11 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<Import Project="..\packages\System.ValueTuple.4.6.2\build\net471\System.ValueTuple.targets" Condition="Exists('..\packages\System.ValueTuple.4.6.2\build\net471\System.ValueTuple.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\System.ValueTuple.4.6.2\build\net471\System.ValueTuple.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.ValueTuple.4.6.2\build\net471\System.ValueTuple.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
12
Depurador TSpdfUtils/Form1.Designer.vb
generated
12
Depurador TSpdfUtils/Form1.Designer.vb
generated
@@ -23,6 +23,7 @@ Partial Class Form1
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Button1
|
||||
@@ -34,11 +35,21 @@ Partial Class Form1
|
||||
Me.Button1.Text = "Button1"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Location = New System.Drawing.Point(363, 214)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(75, 23)
|
||||
Me.Button2.TabIndex = 1
|
||||
Me.Button2.Text = "Button2"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(800, 450)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Name = "Form1"
|
||||
Me.Text = "Form1"
|
||||
@@ -47,4 +58,5 @@ Partial Class Form1
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
End Class
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
Imports System.IO
|
||||
Imports System
|
||||
Imports System.IO
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Security.Cryptography.X509Certificates
|
||||
Imports TSpdfUtils
|
||||
Imports tsPDFUtilsCore
|
||||
Imports TSpdf
|
||||
|
||||
|
||||
Public Class Form1
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
@@ -48,8 +52,8 @@ Public Class Form1
|
||||
Public Shared Sub FirmaPDFPFX(Razon As String, Contacto As String, Localizacion As String, FicheroPdfDef As String, EliminaFirmasAnteriores As Boolean, Optional EliminaFicheroDestino As Boolean = False)
|
||||
Dim p As String = "prueba1234."
|
||||
Try
|
||||
Dim bpfx = IO.File.ReadAllBytes("C:\tmp\mmm.pfx")
|
||||
Dim bpdf = IO.File.ReadAllBytes("c:\tmp\E_2026-00322_sellado.pdf")
|
||||
Dim bpfx = System.IO.File.ReadAllBytes("C:\tmp\mmm.pfx")
|
||||
Dim bpdf = System.IO.File.ReadAllBytes("c:\tmp\E_2026-00322_sellado.pdf")
|
||||
Dim pk As New X509Certificate2(bpfx, p, X509KeyStorageFlags.Exportable)
|
||||
CambiaKeyContainerName(pk)
|
||||
If pk.NotAfter < Now Then Throw New Exception("El certificado está caducado")
|
||||
@@ -57,8 +61,8 @@ Public Class Form1
|
||||
Dim ms As New MemoryStream
|
||||
'tsUtilsPDF.pdf.FirmaPDF(pk, "", PdfStream, ms, Razon, Contacto, Localizacion, RutaTmp, EliminaFirmasAnteriores)
|
||||
TSpdfUtils.Firmas.FirmaPDF(bpfx, p, "", New MemoryStream(bpdf), ms, Razon, Contacto, Localizacion, EliminaFirmasAnteriores)
|
||||
If EliminaFicheroDestino AndAlso IO.File.Exists(FicheroPdfDef) Then IO.File.Delete(FicheroPdfDef)
|
||||
IO.File.WriteAllBytes("c:\tmp\pruebafirmada.pdf", ms.ToArray)
|
||||
If EliminaFicheroDestino AndAlso System.IO.File.Exists(FicheroPdfDef) Then System.IO.File.Delete(FicheroPdfDef)
|
||||
System.IO.File.WriteAllBytes("c:\tmp\pruebafirmada.pdf", ms.ToArray)
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
@@ -71,4 +75,88 @@ Public Class Form1
|
||||
rsa2.ImportParameters(rsa.ExportParameters(True))
|
||||
Certificado.PrivateKey = rsa2
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
|
||||
End Sub
|
||||
Private Shared Sub FirmaDocumentoCFO(PdfOrigen As String, PdfDestino As String)
|
||||
Dim br As Brush
|
||||
Dim Imagen As Byte() = IO.File.ReadAllBytes("c:\tmp\OPENCOAS_LOGO.png")
|
||||
'Dim TextoArt As String = ""
|
||||
'If Doc.tiposdocumentosCOAS.Descripcion = "C.F.O. VISADO UNICO" Then
|
||||
' TextoArt = "Conforme al Art. 5.1 del R.D. 1000/2010"
|
||||
'End If
|
||||
'If ds.NumeroExpedienteDocumentoOriginal.ToString <> "" Then
|
||||
' ' probablemente haya que reducir la fuente en este caso
|
||||
' TextoArt = "Sustituye al visado el " & ds.FechaVisadoOriginal.ToString("dd-MM-yyyy") & ". " & ds.NumeroExpedienteDocumentoOriginal.Split(" ")(1)
|
||||
'Else
|
||||
' Dim releds As relacionesentredocumentos = Doc.RelacionesComoHijo.FirstOrDefault(Function(x) x.Tipo = TipoRelacionEntreDocumentosEnum.SUSTITUCION)
|
||||
' If releds IsNot Nothing Then
|
||||
' Dim sFecVis As String
|
||||
' If releds.DocumentoPadre.NumeroExpedienteDocumento.StartsWith("24/003566") OrElse releds.DocumentoPadre.NumeroExpedienteDocumento.StartsWith("24/003565") Then
|
||||
' sFecVis = "22-12-2023"
|
||||
' Else
|
||||
' If releds.DocumentoPadre.FechaVisado.HasValue = False Then Throw New Exception("El documento al que sustituye no tiene fecha de visado")
|
||||
' sFecVis = releds.DocumentoPadre.FechaVisado.Value.ToString("dd-MM-yyyy")
|
||||
' End If
|
||||
' TextoArt = "Sustituye al visado " & releds.DocumentoPadre.Documento & " el " & sFecVis
|
||||
' End If
|
||||
'End If
|
||||
|
||||
'If ds.TipoSello.StartsWith("2") Or ds.TipoSello.StartsWith("3") Then
|
||||
' br = Brushes.Green
|
||||
' Imagen = My.Resources.CFO_Verde
|
||||
'Else
|
||||
' br = Brushes.DarkBlue
|
||||
' Imagen = My.Resources.CFO_Azul
|
||||
'End If
|
||||
Dim listadoTextos As List(Of DatosTextos) = New List(Of DatosTextos)
|
||||
Dim listadoImagenes As List(Of DatosImagenFirma) = New List(Of DatosImagenFirma)
|
||||
|
||||
Dim Texto1 As New DatosTextos
|
||||
Texto1.texto = "Solicitud Certificado Digital del COAS"
|
||||
Texto1.size = 7.25
|
||||
Texto1.NombreFuente = "Montserrat-Regular"
|
||||
Texto1.PosicionEsquina = EsquinaEnum.INFERIOR_IZQUIERDA
|
||||
Texto1.anguloRotacion = 270
|
||||
Texto1.distanciaX = 7
|
||||
Texto1.distanciaY = 715
|
||||
Texto1.colorTexto = br
|
||||
Texto1.estiloTexto = FontStyle.Regular
|
||||
Texto1.AlineacionTexto = AlineamientoEnum.IZQUIERDA
|
||||
|
||||
listadoTextos.Add(Texto1)
|
||||
|
||||
Dim imagenFondo As New DatosImagenFirma
|
||||
imagenFondo.PosicionEsquina = EsquinaEnum.INFERIOR_IZQUIERDA
|
||||
imagenFondo.Alto = 100
|
||||
imagenFondo.Ancho = 100
|
||||
imagenFondo.PosicionX = 0
|
||||
imagenFondo.PosicionY = 0
|
||||
imagenFondo.AnguloRotacion = 270
|
||||
imagenFondo.Imagen = Imagen
|
||||
|
||||
listadoImagenes.Add(imagenFondo)
|
||||
|
||||
Dim listadoFuentes As New List(Of DatosFuente)
|
||||
|
||||
Dim dfr As New DatosFuente
|
||||
With dfr
|
||||
.NombreFuente = "Montserrat-Regular"
|
||||
.memoryFont = IO.File.ReadAllBytes("C:\tecnosis.tfs\Clientes\COAS\GestionWebCOAS\Content\Fuentes\Montserrat_Regular.ttf")
|
||||
End With
|
||||
listadoFuentes.Add(dfr)
|
||||
Dim dfb As New DatosFuente
|
||||
With dfb
|
||||
.NombreFuente = "Montserrat-Bold"
|
||||
.memoryFont = IO.File.ReadAllBytes("C:\tecnosis.tfs\Clientes\COAS\GestionWebCOAS\Content\Fuentes\Montserrat_Bold.ttf")
|
||||
End With
|
||||
listadoFuentes.Add(dfb)
|
||||
|
||||
Dim medidas As Kernel.Geom.Rectangle
|
||||
'medidas = New Kernel.Geom.Rectangle(0, 0, 48.1889648, 396.8502)
|
||||
medidas = New Kernel.Geom.Rectangle(0, 0, 48.1889648, 312.735)
|
||||
|
||||
TSpdfUtils.FirmaCanvas.FirmaPDFVisible(bPfx, ClavePFX, ClavePDF, PdfOrigen, PdfDestino, Razon, Contacto, Localizacion, bimagen, False, False, NombreCampoFirma, dcf, BloquearDocumento)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
25
Depurador TSpdfUtils/packages.config
Normal file
25
Depurador TSpdfUtils/packages.config
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Logging" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Options" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Microsoft.Extensions.Primitives" version="9.0.9" targetFramework="net48" />
|
||||
<package id="Newtonsoft.Json" version="13.0.2" targetFramework="net48" />
|
||||
<package id="Portable.BouncyCastle" version="1.9.0" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="9.0.9" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.ValueTuple" version="4.6.2" targetFramework="net48" />
|
||||
<package id="TSpdf.bouncy-castle-adapter" version="3.0.4" targetFramework="net48" />
|
||||
<package id="TSpdf.bouncy-castle-connector" version="3.0.4" targetFramework="net48" />
|
||||
<package id="TSpdf.bouncy-castle-fips-adapter" version="3.0.4" targetFramework="net48" />
|
||||
<package id="TSpdf.commons" version="3.0.4" targetFramework="net48" />
|
||||
<package id="TSpdf.io" version="3.0.4" targetFramework="net48" />
|
||||
<package id="TSpdf.kernel" version="3.0.4" targetFramework="net48" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user