Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.Net] TheArtOfDev.HtmlRenderer.PdfSharp è utilizzabile in Visual Basic?
Forum - C# / VB.NET - [VB.Net] TheArtOfDev.HtmlRenderer.PdfSharp è utilizzabile in Visual Basic?

Avatar
dylan666 (Normal User)
Pro


Messaggi: 128
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 14:27
Lunedì, 03/05/2021
Ciao a tutti,
sto provando a convertire una pagina HTML "complessa" (cioè che implica l'uso di fogli di stile) in PDF e siccome il risultato di iTextSharp non mi piaceva sto provano PdfSharp con questo pacchetto: https://www.nuget.org/packages/HtmlRenderer.PdfSharp/

Una volta preso da NuGet e fatto Imports di TheArtOfDev.HtmlRenderer.PdfSharp e l'esempio per C# è questo:

Codice sorgente - presumibilmente C#

  1. class Program
  2. {
  3.     private static void Main(string[] args)
  4.     {
  5.         PdfDocument pdf = PdfGenerator.GeneratePdf("<p><h1>Hello World</h1>This is html rendered text</p>", PageSize.A4);
  6.         pdf.Save("document.pdf");
  7.     }
  8. }



Che in VB.net diventa più o meno questo

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim pdf As PdfSharp.Pdf.PdfDocument = PdfGenerator.GeneratePdf("<p><h1>Hello World</h1>This is html rendered text</p>", PdfSharp.PageSize.A4)
  2.         pdf.Save("document.pdf")



Ho eseguito il suddetto codice messo in un button.
Ricevo questo errore:

Codice sorgente - presumibilmente Delphi

  1. System.TypeInitializationException was unhandled
  2.   HResult=-2146233036
  3.   Message=L'inizializzatore di tipo di 'TheArtOfDev.HtmlRenderer.PdfSharp.Adapters.PdfSharpAdapter' ha generato un'eccezione.
  4.   Source=HtmlRenderer.PdfSharp
  5.   TypeName=TheArtOfDev.HtmlRenderer.PdfSharp.Adapters.PdfSharpAdapter
  6.   StackTrace:
  7.        in TheArtOfDev.HtmlRenderer.PdfSharp.Adapters.PdfSharpAdapter.get_Instance() in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\Adapters\PdfSharpAdapter.cs:riga 57
  8.        in TheArtOfDev.HtmlRenderer.PdfSharp.HtmlContainer..ctor() in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\HtmlContainer.cs:riga 43
  9.        in TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(String html, PdfGenerateConfig config, CssData cssData, EventHandler`1 stylesheetLoad, EventHandler`1 imageLoad) in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\PdfGenerator.cs:riga 110
  10.        in TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(String html, PageSize pageSize, Int32 margin, CssData cssData, EventHandler`1 stylesheetLoad, EventHandler`1 imageLoad) in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\PdfGenerator.cs:riga 76
  11.        in HMTL2PDF.Form1.Button3_Click(Object sender, EventArgs e) in C:\Miei Progetti\Test - HMTL2PDF\vX\HMTL2PDF\Form1.vb:riga 26
  12.        in System.Windows.Forms.Control.OnClick(EventArgs e)
  13.        in System.Windows.Forms.Button.OnClick(EventArgs e)
  14.        in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
  15.        in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  16.        in System.Windows.Forms.Control.WndProc(Message& m)
  17.        in System.Windows.Forms.ButtonBase.WndProc(Message& m)
  18.        in System.Windows.Forms.Button.WndProc(Message& m)
  19.        in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  20.        in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  21.        in System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  22.        in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
  23.        in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
  24.        in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
  25.        in System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
  26.        in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
  27.        in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
  28.        in Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
  29.        in HMTL2PDF.My.MyApplication.Main(String[] Args) in :riga 81
  30.        in System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
  31.        in System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
  32.        in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
  33.        in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
  34.        in System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  35.        in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
  36.        in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  37.        in System.Threading.ThreadHelper.ThreadStart()
  38.   InnerException:
  39.        HResult=-2146233079
  40.        Message=Obsolete and not implemted any more.
  41.        Source=PdfSharp
  42.        StackTrace:
  43.             in PdfSharp.Drawing.XFontFamily.get_Families()
  44.             in TheArtOfDev.HtmlRenderer.PdfSharp.Adapters.PdfSharpAdapter..ctor() in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\Adapters\PdfSharpAdapter.cs:riga 44
  45.             in TheArtOfDev.HtmlRenderer.PdfSharp.Adapters.PdfSharpAdapter..cctor() in d:\source\github\HTML-Renderer\Source\HtmlRenderer.PdfSharp\Adapters\PdfSharpAdapter.cs:riga 33
  46.        InnerException:



Mi pare però molto generico...
Dove sbaglio?

Grazie in anticipo a chi risponderà

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2209
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:22
Martedì, 04/05/2021
Questo problema e relativo ad una vecchia versione che hai scaricato.

L'errore avviene quando la libreria "scritta male" cerca di utilizzare un font non presente nel tuo sistema
causando quell'eccezione.


La versione che hai scaricato da quel sito è:  HtmlRenderer.PdfSharp -Version 1.5.0.6

Il bug è stato risolto con la versione 1.5.1

installa questa versione con il pm.

Codice sorgente - presumibilmente Plain Text

  1. PM> Install-Package HtmlRenderer.PdfSharp -Version 1.5.1-beta1




PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 128
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 14:15
Giovedì, 06/05/2021
Ha funzionato perfettamente.
Era una banalità ma non ci avrei mai pensato! :)

PM Quote