Conversione da PDF a HTML

Il PDF (Portable Document Format) è uno dei formati di documenti ampiamente utilizzati per la condivisione di dati e informazioni multipiattaforma. Una delle sue capacità uniche include che la fedeltà di un documento rimane intatta durante la visualizzazione su qualsiasi piattaforma utilizzando l’applicazione secondo le specifiche Adobe. Inoltre, HTML (HyperText Markup Language) è anche un formato di file leader per lo sviluppo di pagine Web e la maggior parte dei browser Web supporta questo formato. Tuttavia, il PDF è ampiamente accettato in quanto può essere facilmente visualizzato su qualsiasi dispositivo senza perdere la formattazione del documento. Pertanto, in questo articolo, discuteremo i passaggi su come convertire il file HTML in formato PDF utilizzando l’API .NET.

API C# per convertire HTML in PDF

Per eseguire l’operazione di conversione, innanzitutto, è necessario installare Aspose.PDF for .NET sul sistema. L’API è disponibile nella libreria NuGet. Si prega di eseguire il seguente comando su Package Manager Console per installarlo:

Install-Package Aspose.Pdf

Una volta completata l’installazione, Aspose.PDF per .NET apparirà nella cartella Pacchetti in Esplora soluzioni.

Converti HTML in PDF in C#

Di seguito sono riportati i passaggi su come convertire HTML in PDF utilizzando C#

  1. Crea un’istanza della classe License per rimuovere eventuali limitazioni durante il processo di generazione del file PDF.
  2. Crea un oggetto della classe HtmlLoadOptions passando l’URL di base HTML di input come argomento a [HtmlLoadOptions(…)](https:/ /apiference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) costruttore.
  3. Inizializza l’oggetto della classe Document e passa [HtmlLoadOptions](https://apiference.aspose.com/pdf/net/aspose. pdf/htmlloadoptions) come argomento per il suo costruttore.
  4. Chiama il metodo Save(…) dell’oggetto Document ed esegui il rendering dell’output in formato PDF.
// creare un oggetto per avviare la licenza
Aspose.Pdf.License license = new Aspose.Pdf.License();

// fornire il percorso del file di licenza
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// creare un'istanza della classe HtmlLoadOptions
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// creare l'oggetto Document e fornire il percorso del file HTML di input
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// salva l'HTML risultante in formato PDF
document.Save("/Documents/Converted.pdf");

Incorpora i caratteri durante la conversione

La maggior parte delle pagine HTML utilizza spesso caratteri (ad esempio caratteri da cartelle locali, caratteri Google, ecc.) e per preservare il layout delle pagine, gli stessi caratteri devono essere incorporati durante il processo di rendering. Quindi, per controllare l’incorporamento dei caratteri nel documento risultante, dobbiamo usare la proprietà IsEmbedFonts.

// Incorpora i caratteri durante la conversione
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

L’unità di misura in Aspose.PDF è Punti. E sappiamo che A3 misura 297 × 420 millimetri o 11,69 × 16,54 pollici. Pertanto, le dimensioni vengono arrotondate a 842 × 1190 punti. Nel seguente frammento di codice, stiamo regolando le dimensioni della pagina del documento risultante come A3 e l’orientamento della pagina come Orizzontale.

// Imposta il formato pagina come A3 e l'orientamento della pagina come Orizzontale
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

Converti pagina Web in PDF

Oltre alla conversione di file HTML, potremmo anche avere la necessità di convertire direttamente una pagina Web in formato PDF. Quindi, per soddisfare questo requisito, prima recupereremo il contenuto della pagina Web remota utilizzando l’istanza HttpClient, creeremo un oggetto Stream e quindi passeremo l’istanza Stream all’oggetto Document. Il motivo per cui abbiamo bisogno del contenuto in Stream è che l’istanza del documento accetta solo file o oggetti Steam.

La sezione seguente spiega i passaggi su come convertire una pagina Web in PDF utilizzando C#

  1. Leggi il contenuto della pagina utilizzando un oggetto HttpClient.
  2. Istanziare l’oggetto HtmlLoadOptions e impostare l’URL di base.
  3. Inizializza un oggetto Document e passa l’oggetto stream e l’istanza HtmlLoadOptions come argomenti.
  4. Chiama il metodo Save(String) dalla classe Document per generare l’output.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // Imposta il formato pagina A3 e l'orientamento Orizzontale; 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // Imposta le dimensioni della pagina
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // Crea un'istanza dell'oggetto Document
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // Salva il risultato
    pdfDocument.Save(_dataDir + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        // recuperare e restituire i risultati nell'istanza del flusso
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

Rendering completo di HTML su una singola pagina

Durante la conversione da HTML a PDF, la lunghezza del file risultante corrisponde alla lunghezza del contenuto di un documento HTML di input. Pertanto, se l’HTML di input è composto da più pagine, il file risultante si estenderà anche su più pagine. Tuttavia, potremmo limitare l’output a una singola pagina PDF. Per soddisfare questo requisito, è possibile utilizzare la proprietà IsRenderToSinglePage della classe HtmlLoadOptions.

Di seguito è riportato il frammento di codice per il rendering del contenuto HTML completo su una singola pagina PDF utilizzando C#.

// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Inizializzare l'oggetto HtmlLoadOptions
HtmlLoadOptions options = new HtmlLoadOptions();

// Imposta il rendering sulla proprietà di una singola pagina
options.IsRenderToSinglePage = true;

// Carica il contenuto HTML di origine del documento
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// Salva il file PDF risultante
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

Ottieni una licenza gratuita

Puoi richiedere una licenza temporanea gratuita per provare l’API senza alcuna limitazione di valutazione.

Conclusione

In questo articolo, abbiamo appreso l’approccio alla conversione di file HTML in formato PDF utilizzando l’API .NET. Se sei ulteriormente interessato a conoscere altre interessanti funzionalità offerte da Aspose.PDF per .NET, visita la pagina Caratteristiche principali. Una serie completa di esempi può essere trovata nel repository GitHub.

Suggerimento veloce

Abbiamo anche sviluppato applicazioni online gratuite per verificare rapidamente le funzionalità offerte dalle nostre API. Quindi puoi controllare l’App di conversione Aspose.PDF per trasformare il file HTML in formato PDF. Inoltre, puoi anche utilizzare vari altri formati di file e soddisfare i tuoi requisiti di conversione.