- 3.0.8.0 2026-08-03 Correcciones clase FirmaCanvas

This commit is contained in:
2026-09-04 08:56:53 +02:00
parent 25b72a0223
commit c0298979cc
8 changed files with 1440 additions and 14 deletions

View File

@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup> </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> </configuration>

View File

@@ -14,6 +14,8 @@
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
@@ -48,16 +50,83 @@
<OptionInfer>On</OptionInfer> <OptionInfer>On</OptionInfer>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <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" />
<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.Data" />
<Reference Include="System.Deployment" /> <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.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.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" /> <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>
<ItemGroup> <ItemGroup>
<Import Include="Microsoft.VisualBasic" /> <Import Include="Microsoft.VisualBasic" />
@@ -118,6 +187,7 @@
<LastGenOutput>Settings.Designer.vb</LastGenOutput> <LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None> </None>
<None Include="App.config" /> <None Include="App.config" />
<None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\tsPDFUtilsCore\tsPDFUtilsCore.csproj"> <ProjectReference Include="..\tsPDFUtilsCore\tsPDFUtilsCore.csproj">
@@ -130,4 +200,11 @@
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <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> </Project>

View File

@@ -23,6 +23,7 @@ Partial Class Form1
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.SuspendLayout() Me.SuspendLayout()
' '
'Button1 'Button1
@@ -34,11 +35,21 @@ Partial Class Form1
Me.Button1.Text = "Button1" Me.Button1.Text = "Button1"
Me.Button1.UseVisualStyleBackColor = True 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 'Form1
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450) Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.Button1)
Me.Name = "Form1" Me.Name = "Form1"
Me.Text = "Form1" Me.Text = "Form1"
@@ -47,4 +58,5 @@ Partial Class Form1
End Sub End Sub
Friend WithEvents Button1 As Button Friend WithEvents Button1 As Button
Friend WithEvents Button2 As Button
End Class End Class

View File

@@ -1,7 +1,11 @@
Imports System.IO Imports System
Imports System.IO
Imports System.Security.Cryptography Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates Imports System.Security.Cryptography.X509Certificates
Imports TSpdfUtils Imports TSpdfUtils
Imports tsPDFUtilsCore
Imports TSpdf
Public Class Form1 Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 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) 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." Dim p As String = "prueba1234."
Try Try
Dim bpfx = IO.File.ReadAllBytes("C:\tmp\mmm.pfx") Dim bpfx = System.IO.File.ReadAllBytes("C:\tmp\mmm.pfx")
Dim bpdf = IO.File.ReadAllBytes("c:\tmp\E_2026-00322_sellado.pdf") Dim bpdf = System.IO.File.ReadAllBytes("c:\tmp\E_2026-00322_sellado.pdf")
Dim pk As New X509Certificate2(bpfx, p, X509KeyStorageFlags.Exportable) Dim pk As New X509Certificate2(bpfx, p, X509KeyStorageFlags.Exportable)
CambiaKeyContainerName(pk) CambiaKeyContainerName(pk)
If pk.NotAfter < Now Then Throw New Exception("El certificado está caducado") If pk.NotAfter < Now Then Throw New Exception("El certificado está caducado")
@@ -57,8 +61,8 @@ Public Class Form1
Dim ms As New MemoryStream Dim ms As New MemoryStream
'tsUtilsPDF.pdf.FirmaPDF(pk, "", PdfStream, ms, Razon, Contacto, Localizacion, RutaTmp, EliminaFirmasAnteriores) 'tsUtilsPDF.pdf.FirmaPDF(pk, "", PdfStream, ms, Razon, Contacto, Localizacion, RutaTmp, EliminaFirmasAnteriores)
TSpdfUtils.Firmas.FirmaPDF(bpfx, p, "", New MemoryStream(bpdf), ms, Razon, Contacto, Localizacion, 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) If EliminaFicheroDestino AndAlso System.IO.File.Exists(FicheroPdfDef) Then System.IO.File.Delete(FicheroPdfDef)
IO.File.WriteAllBytes("c:\tmp\pruebafirmada.pdf", ms.ToArray) System.IO.File.WriteAllBytes("c:\tmp\pruebafirmada.pdf", ms.ToArray)
Catch ex As Exception Catch ex As Exception
Throw New Exception(ex.Message, ex) Throw New Exception(ex.Message, ex)
End Try End Try
@@ -71,4 +75,88 @@ Public Class Form1
rsa2.ImportParameters(rsa.ExportParameters(True)) rsa2.ImportParameters(rsa.ExportParameters(True))
Certificado.PrivateKey = rsa2 Certificado.PrivateKey = rsa2
End Sub 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 End Class

View 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>

1214
TSPdfUtils/FirmaCanvas.vb Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -449,9 +449,8 @@ Public Class Firmas
Public Shared Sub FirmaPDFVisible(bPfx As Byte(), ByVal ClavePFX As String, ByVal ClavePDF As String, ByVal PdfOrigen As Byte(), ByVal pdfDestino As Stream, ByVal Razon As String, ByVal Contacto As String, ByVal Localizacion As String, ByVal listadoTextos As List(Of DatosTextos), ByVal listadoImagenes As List(Of DatosImagenFirma), Optional listadoFuentes As List(Of DatosFuente) = Nothing, Optional EliminarFirmasAnteriores As Boolean = False, Optional ObviarSeguridad As Boolean = True, Optional NombreCampoFirma As String = "", Optional DatosCampoFirma As DatosNuevoCampoFirma = Nothing, Optional BloquearDocumento As Boolean = False) Public Shared Sub FirmaPDFVisible(bPfx As Byte(), ByVal ClavePFX As String, ByVal ClavePDF As String, ByVal PdfOrigen As Byte(), ByVal pdfDestino As Stream, ByVal Razon As String, ByVal Contacto As String, ByVal Localizacion As String, ByVal listadoTextos As List(Of DatosTextos), ByVal listadoImagenes As List(Of DatosImagenFirma), Optional listadoFuentes As List(Of DatosFuente) = Nothing, Optional EliminarFirmasAnteriores As Boolean = False, Optional ObviarSeguridad As Boolean = True, Optional NombreCampoFirma As String = "", Optional DatosCampoFirma As DatosNuevoCampoFirma = Nothing, Optional BloquearDocumento As Boolean = False)
Dim StreamPfx As New MemoryStream(bPfx) Dim StreamPfx As New MemoryStream(bPfx)
Dim ms As New MemoryStream
Dim fso = New MemoryStream(PdfOrigen) Dim fso = New MemoryStream(PdfOrigen)
FirmaPDFVisible(StreamPfx, ClavePFX, ClavePDF, fso, ms, Razon, Contacto, Localizacion, listadoTextos, listadoImagenes, listadoFuentes, EliminarFirmasAnteriores, ObviarSeguridad, NombreCampoFirma, DatosCampoFirma, BloquearDocumento) FirmaPDFVisible(StreamPfx, ClavePFX, ClavePDF, fso, pdfDestino, Razon, Contacto, Localizacion, listadoTextos, listadoImagenes, listadoFuentes, EliminarFirmasAnteriores, ObviarSeguridad, NombreCampoFirma, DatosCampoFirma, BloquearDocumento)
End Sub End Sub

View File

@@ -19,16 +19,19 @@
<AssemblyName>TSpdfUtils</AssemblyName> <AssemblyName>TSpdfUtils</AssemblyName>
<PackageId>TSpdfUtils</PackageId> <PackageId>TSpdfUtils</PackageId>
<PackageTags>libreria, netstandard2.0</PackageTags> <PackageTags>libreria, netstandard2.0</PackageTags>
<AssemblyVersion>3.0.7.0</AssemblyVersion> <AssemblyVersion>3.0.10.0</AssemblyVersion>
<FileVersion>3.0.7.0</FileVersion> <FileVersion>3.0.10.0</FileVersion>
<Version>3.0.7.0</Version> <Version>3.0.10.0</Version>
<Authors>Manuel</Authors> <Authors>Manuel</Authors>
<Company>Tecnosis S.A</Company> <Company>Tecnosis S.A</Company>
<Description>Utilidades de tratamiento de pdf, de firmas digitales e imagenes.</Description> <Description>Utilidades de tratamiento de pdf, de firmas digitales e imagenes.</Description>
<PackageReleaseNotes> <PackageReleaseNotes>
- 3.0.7.0 2026-05-20 Se elimina PdfSignatureTools, Nuevo metodo ObtenerPropiedadDePdf - 3.0.8.0 2026-08-03 Correcciones clase FirmaCanvas
- 3.0.6.0 2026-05-20 Correccion PdfSignatureTools - 3.0.8.0 2026-08-03 Se agregan Sobrecargas a la clase FirmaCanvas
- 3.0.5.0 2026-05-20 Nuevas rutinas en PdfSignatureTools - 3.0.8.0 2026-08-03 Se agrega clase FirmaCanvas
- 3.0.7.0 2026-08-01 Se elimina PdfSignatureTools, Nuevo metodo ObtenerPropiedadDePdf
- 3.0.6.0 2026-08-01 Correccion PdfSignatureTools
- 3.0.5.0 2026-08-01 Nuevas rutinas en PdfSignatureTools
- 3.0.4.0 2026-05-20 Actualización tsPDF - 3.0.4.0 2026-05-20 Actualización tsPDF
- 3.0.0.0 2026-05-20 Correcciones dependencias Microsoft.Extensions.Logging - 3.0.0.0 2026-05-20 Correcciones dependencias Microsoft.Extensions.Logging
- 3.0.0.0 2025-10-23 Actualización de tspdfutilscore - 3.0.0.0 2025-10-23 Actualización de tspdfutilscore