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 en utilisant C#. Il couvre les sujets suivants.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Format: HTML
Format: MHTML
Format: WebPage
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 manière flexible.
Le code C# suivant montre comment convertir un document HTML en PDF.
Étapes : Convertir HTML en PDF en C#
// 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 vous présente une application gratuite en ligne “HTML en PDF”, où vous pouvez essayer d’explorer la fonctionnalité et la qualité de son fonctionnement.
Le moteur de conversion HTML a plusieurs options qui nous permettent de contrôler le processus de conversion.
Les requêtes multimédias sont une technique populaire pour fournir une feuille de style adaptée à différents appareils. Nous pouvons définir le type d’appareil en utilisant 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 exemple, des polices du dossier local, Google Fonts, etc.). Nous pouvons également contrôler l’incorporation des polices dans un document en utilisant 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
a 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 l’URL externe par interne pour d’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();
}
La conversion d’une page Web est légèrement différente de la conversion d’un document HTML local. Pour convertir le contenu d’une page Web en format PDF, nous pouvons d’abord récupérer le contenu de la page HTML en utilisant une instance HttpClient, créer un objet Stream, passer 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 :
Étapes : Convertir WebPage en PDF en C#
// 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, afin que seuls les utilisateurs authentiques puissent récupérer le contenu de la page. Cela inclut également le scénario où certaines ressources/données référencées à l’intérieur de HTML sont récupérées depuis un serveur externe qui nécessite une authentification et afin de répondre à cette exigence, la propriété ExternalResourcesCredentials
a été ajoutée à la classe HtmlLoadOptions
. Le code suivant montre les étapes pour passer des identifiants afin de demander 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();
}
}
Aspose.PDF for .NET offre la possibilité de rendre tout le contenu sur une seule page lors de la conversion d’un fichier HTML en format PDF. Par exemple, si vous avez un contenu HTML dont la taille de sortie est supérieure à une page, vous pouvez utiliser l’option pour rendre les données de sortie sur une seule page PDF. Pour utiliser cette option, la classe HtmlLoadOptions a été étendue par le drapeau IsRenderToSinglePage. Le 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 possibilité de convertir une page HTML en document PDF. Étant donné que HTML permet d’ajouter des éléments graphiques SVG en tant que balise dans la page, Aspose.PDF prend également en charge la conversion de telles données dans le fichier PDF résultant. Le code suivant montre comment convertir des fichiers HTML avec des balises graphiques SVG en documents PDF tagué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");
}
}
Essayez de convertir MHTML en PDF en ligne
Aspose.PDF for .NET vous présente une application gratuite en ligne “MHTML en PDF”, où vous pouvez essayer d’explorer la fonctionnalité et la qualité de son fonctionnement.
MHTML, abréviation de MIME HTML, est un format d’archive de page Web utilisé pour combiner des ressources qui sont généralement représentées par des liens externes (tels que des images, des animations Flash, des applets Java et des fichiers audio) avec du code HTML dans un seul fichier. Le contenu d’un fichier MHTML est encodé comme s’il s’agissait d’un message email HTML, en utilisant le type MIME multipart/related. Aspose.PDF for .NET peut convertir des fichiers HTML en 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 format PDF. Le code suivant montre comment convertir des fichiers MHTML en format PDF avec C# :
Étapes : Convertir MHTML en PDF en 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");
}
}
Cet article couvre également ces sujets. Les codes sont les mêmes que ci-dessus.
Format: HTML
Format: MHTML
Format: WebPage
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.