Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Cet article explique comment convertir HTML en PDF avec C#. Il couvre les sujets suivants.
Le fragment de code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Aspose.PDF for .NET est une API de manipulation PDF qui vous permet de convertir n’importe quel document HTML existant en PDF de manière transparente. Le processus de conversion de HTML en PDF peut être personnalisé de façon flexible.
L’exemple de code C# suivant montre comment convertir un document HTML en PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions();
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDF_out.pdf");
}
}
Essayez de convertir HTML en PDF en ligne
Aspose propose une application en ligne gratuite “HTML to PDF”, où vous pouvez tester la fonctionnalité et voir son efficacité.
Le moteur de conversion HTML possède plusieurs options qui nous permettent de contrôler le processus de conversion.
Les requêtes média sont une technique populaire pour fournir une feuille de style adaptée à différents appareils. Nous pouvons définir le type d’appareil à l’aide de la propriété HtmlMediaType.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedMediaType()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with Print media type
var options = new HtmlLoadOptions
{
// Set Print or Screen mode
HtmlMediaType = Aspose.Pdf.HtmlMediaType.Print
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvancedMediaType_out.pdf");
}
}
Les pages HTML utilisent souvent des polices (par ex., des polices provenant d’un dossier local, Google Fonts, etc.). Nous pouvons également contrôler l’incorporation des polices dans un document à l’aide de la propriété IsEmbedFonts.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedEmbedFonts()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with the font embedding option set
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Disable font embedding
IsEmbedFonts = false
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test_fonts.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvanced_EmbedFonts_out.pdf");
}
}
Le moteur de conversion fournit un mécanisme qui vous permet de contrôler le chargement de certaines ressources associées au document HTML.
La classe HtmlLoadOptions possède la propriété CustomLoaderOfExternalResources avec laquelle nous pouvons définir le comportement du chargeur de ressources.
Supposons que nous devions remplacer toutes les images PNG par une seule image test.jpg et remplacer les URL externes par des URL internes pour les autres ressources.
Pour ce faire, nous pouvons définir un chargeur personnalisé SamePictureLoader et pointer CustomLoaderOfExternalResources vers ce nom.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_DummyImage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document with a custom resource loader for external images
var options = new Aspose.Pdf.HtmlLoadOptions
{
CustomLoaderOfExternalResources = SamePictureLoader
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Aspose.Pdf.LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
Aspose.Pdf.LoadOptions.ResourceLoadingResult result;
if (resourceURI.EndsWith(".png"))
{
byte[] resultBytes = File.ReadAllBytes(dataDir + "test.jpg");
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(resultBytes)
{
// Set MIME Type
MIMETypeIfKnown = "image/jpeg"
};
}
else
{
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(GetContentFromUrl(resourceURI));
}
return result;
}
private static byte[] GetContentFromUrl(string url)
{
var httpClient = new System.Net.Http.HttpClient();
return httpClient.GetByteArrayAsync(url).GetAwaiter().GetResult();
}
Aspose.PDF for .NET offre la possibilité de rendre tout le contenu sur une seule page lors de la conversion d’un fichier HTML au format PDF. Par exemple, si vous avez du contenu HTML dont la taille de sortie dépasse une page, vous pouvez utiliser l’option pour rendre les données de sortie sur une seule page PDF. Pour activer cette option, la classe HtmlLoadOptions a été étendue avec le drapeau IsRenderToSinglePage. Le fragment de code ci‑dessous montre comment utiliser cette fonctionnalité.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedSinglePageRendering()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Set Render to single page property
IsRenderToSinglePage = true
};
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLToPDF.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderContentToSamePage_out.pdf");
}
}
Aspose.PDF for .NET offre la capacité de convertir une page HTML en document PDF. Puisque HTML permet d’ajouter des éléments graphiques SVG sous forme de balises dans la page, Aspose.PDF prend également en charge la conversion de ces données dans le fichier PDF résultant. Le fragment de code suivant montre comment convertir des fichiers HTML contenant des balises graphiques SVG en documents PDF balisés.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFWithSVG()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions(Path.GetDirectoryName(dataDir + "HTMLSVG.html"));
// Initialize Document object
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLSVG.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderHTMLwithSVGData_out.pdf");
}
}
Pour répondre aux exigences d’accessibilité, un document PDF doit inclure des éléments de structure logique qui définissent l’ordre de lecture, fournissent un texte alternatif pour les lecteurs d’écran afin de décrire les parties illustratives du document, et marquent la hiérarchie de son contenu.
De nombreux documents HTML contiennent déjà ce type de structure logique. Aspose.PDF peut la préserver et la transférer au PDF lors de la conversion HTML‑vers‑PDF.
Définissez la propriété HtmlLoadOptions.CreateLogicalStructure sur true pour reproduire la structure du document HTML original à l’aide d’éléments de structure logique PDF.
Convertir une page Web est légèrement différent de convertir un document HTML local. Pour convertir le contenu d’une page Web au format PDF, nous pouvons d’abord récupérer le contenu de la page HTML à l’aide d’une instance HttpClient, créer un objet Stream, transmettre le contenu à l’objet Document et rendre la sortie au format PDF.
Lors de la conversion d’une page Web hébergée sur un serveur web en PDF :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_WebPage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "https://en.wikipedia.org/wiki/Aspose_API";
// Set page size A3 and Landscape orientation;
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
PageInfo =
{
Width = 842,
Height = 1191,
IsLandscape = true
}
};
// Load the web page content as a stream and create a PDF document
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url), options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Parfois, nous devons effectuer la conversion de fichiers HTML qui nécessitent une authentification et des privilèges d’accès, de sorte que seuls les utilisateurs autorisés puissent récupérer le contenu de la page. Cela inclut également le scénario où certaines ressources/données référencées dans le HTML sont récupérées depuis un serveur externe nécessitant une authentification. Pour répondre à ce besoin, la propriété ExternalResourcesCredentials a été ajoutée à la classe HtmlLoadOptions. Le fragment de code suivant montre les étapes pour transmettre des informations d’identification afin de demander le HTML et ses ressources respectives lors de la conversion d’un fichier HTML en PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedAuthorized()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "http://httpbin.org/basic-auth/user1/password1";
var credentials = new System.Net.NetworkCredential("user1", "password1");
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
ExternalResourcesCredentials = credentials
};
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url, credentials), options))
{
// Save PDF document
document.Save(dataDir + "HtmlTest_out.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Essayez de convertir MHTML en PDF en ligne
Aspose.PDF for .NET propose une application en ligne gratuite “MHTML to PDF”, où vous pouvez tester la fonctionnalité et voir son efficacité.
MHTML, abréviation de MIME HTML, est un format d’archive de pages Web utilisé pour combiner des ressources généralement représentées par des liens externes (tels que images, animations Flash, applets Java et fichiers audio) avec le code HTML dans un seul fichier. Le contenu d’un fichier MHTML est encodé comme s’il s’agissait d’un message électronique HTML, en utilisant le type MIME multipart/related. Aspose.PDF for .NET peut convertir des fichiers HTML au format PDF et, avec la sortie de Aspose.PDF for .NET 9.0.0, nous avons introduit une nouvelle fonctionnalité qui vous permet de convertir des fichiers MHTML en PDF. Le fragment de code suivant montre comment convertir des fichiers MHTML en PDF avec C# :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertMHTtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize MhtLoadOptions with page setup
var options = new Aspose.Pdf.MhtLoadOptions()
{
PageInfo = { Width = 842, Height = 1191, IsLandscape = true }
};
// Initialize Document object using the MHT file and options
using (var document = new Aspose.Pdf.Document(dataDir + "fileformatinfo.mht", options))
{
// Save PDF document
document.Save(dataDir + "MhtmlTest_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.