using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Explorez les meilleures alternatives pour ajouter un filigrane à un PDF avec PDFsharp
Kannapat Udonpant
mars 27, 2025
Partager:
Ajouter des filigranes aux PDFs est une exigence courante pour la sécurité des documents, l'image de marque et le contrôle des versions. Que ce soit pour marquer des documents comme confidentiels, pour marquer des rapports officiels ou pour empêcher la reproduction non autorisée, le filigrane est une fonctionnalité essentielle.
En C#, les développeurs ont plusieurs bibliothèques parmi lesquelles choisir, avec IronPDF et PDFSharp, qui sont deux des options les plus populaires. Cependant, leurs approches, facilité d'utilisation, performances et structures de licence diffèrent considérablement. Cet article propose une comparaison détaillée entre IronPDF et PDFsharp pour l'ajout de filigranes aux PDF existants, offrant des informations sur leurs fonctionnalités, processus de mise en œuvre et capacités de personnalisation.
À la fin de cet article, vous aurez une compréhension claire de quelle bibliothèque convient le mieux aux besoins de votre projet en fonction de la facilité d'utilisation, des performances et de la disponibilité des fonctionnalités.
Comprendre le filigrane PDF
Qu'est-ce qu'un filigrane ?
Un filigrane est une superposition graphique ou textuelle sur un document qui sert d'identifiant, de moyen de dissuasion ou d'élément de marque. Les filigranes peuvent être visibles ou invisibles, selon leur objectif.
Types de filigranes
Filigrane de texte – Typiquement une superposition semi-transparente avec un message tel que "CONFIDENTIEL" ou "PROJET."
Filigrane d'image – Un logo, emblème ou graphique intégré dans le document.
Filigrane Transparent – Une marque de branding subtile qui n'obstrue pas la lisibilité du document.
Filigrane estampillé – Un marquage plus visible et audacieux qui garantit la visibilité.
Cas d'utilisation courants
Sécurité & Protection – Empêchez la duplication non autorisée en marquant les documents comme propriétaires.
Image de marque – Ajoutez des logos ou des signatures d'entreprise pour maintenir la cohérence de la marque à travers les documents.
Contrôle de version – Étiquetez les brouillons, les versions finales ou les révisions de documents.
Aperçu de IronPDF et PDFsharp
IronPDF
Image cassée Ajouter depuis Pixabay, sélectionner depuis vos fichiers ou glisser-déposer une image ici.
IronPDF est une bibliothèque .NET premium et riche en fonctionnalités conçue pour simplifier la gestion des PDF. C'est particulièrement utile pour les développeurs recherchant une mise en œuvre facile des tâches de manipulation de PDF, y compris le filigranage.
Caractéristiques clés :
API simple et intuitive nécessitant un code minimal.
Prend en charge les filigranes de texte et d'image avec des options de personnalisation.
Offre le contrôle de l'opacité, le positionnement et la rotation pour un placement précis.
Compatible avec .NET 6+, .NET Core et .NET Framework.
Disponible avec un modèle de licence perpétuelle pour une utilisation à long terme.
Image cassée Ajouter depuis Pixabay, sélectionner depuis vos fichiers ou glisser-déposer une image ici.
PDFsharp est une bibliothèque open-source qui permet aux développeurs de créer, éditer et manipuler des PDFs en C#. Bien qu'il soit très flexible, le filigranage nécessite plus d'efforts manuels par rapport à IronPDF.
Caractéristiques clés :
Gratuit et open-source, le rendant rentable pour les projets soucieux de leur budget.
Fournit un contrôle de bas niveau sur les opérations de dessin PDF, y compris les chemins graphiques tracés et les chemins graphiques transparents.
Prend en charge à la fois les filigranes de texte et d'image, mais nécessite un code supplémentaire pour les transformations.
Fonctionne avec .NET Framework et .NET Core (via PDFSharpCore).
Manque de fonctions de filigrane de haut niveau intégrées, obligeant les développeurs à implémenter manuellement des fonctionnalités comme l'opacité et la rotation.
Ajout d'un filigrane avec IronPDF
IronPDF offre une API simple qui permet aux développeurs d'appliquer des filigranes efficacement avec seulement quelques lignes de code, ce qui simplifie la rationalisation de vos tâches de filigrane PDF efficacement, sans configurations complexes ou manuelles. L'outil de filigrane d'IronPDF peut utiliser des chaînes HTML/CSS pour le filigrane, comme vous le verrez ci-dessous, vous offrant ainsi un contrôle total sur l'apparence de votre filigrane.
Exemple de filigrane de texte
using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
const string filename = "existing.pdf";
PdfDocument pdf = PdfDocument.FromFile(filename);
string watermark = "<h1 style='color:red'>Confidential!</h1>";
pdf.ApplyWatermark(watermark);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private Const filename As String = "existing.pdf"
Private pdf As PdfDocument = PdfDocument.FromFile(filename)
Private watermark As String = "<h1 style='color:red'>Confidential!</h1>"
pdf.ApplyWatermark(watermark)
pdf.SaveAs("watermarked.pdf")
$vbLabelText $csharpLabel
Dans cet exemple de code, nous voyons à quel point il est facile d'appliquer un filigrane à vos fichiers PDF existants avec IronPDF. Ici, nous avons chargé le PDF existant en utilisant la méthode FromFile. Ensuite, nous créons un filigrane au format simple de chaîne et l'appliquons au PDF en utilisant ApplyWatermark. Comme vous pouvez le voir sur l'image de sortie, cela a ajouté une simple chaîne de texte "Confidential" comme filigrane sur notre PDF.
Exemple de filigrane d'image
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")
Private watermark As String = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>"
pdf.ApplyWatermark(watermark, rotation:= 45, opacity:= 80)
pdf.SaveAs("watermarked.pdf")
$vbLabelText $csharpLabel
Ajouter une image en tant que filigrane est aussi simple que d'ajouter du texte, car ils utilisent tous deux la même méthode. Tout comme dans l'exemple de texte, nous créons simplement une nouvelle variable de chaîne de filigrane, contenant le contenu que nous voulons utiliser comme filigrane (dans ce cas notre image), et nous l'appliquons comme précédemment. Cette fois, nous avons ajouté une transformation de rotation personnalisée et l'opacité.
Cette approche superpose un filigrane d'image à une position spécifiée, permettant ainsi un placement et une transparence personnalisés.
Ajouter un filigrane avec PDFsharp
PDFsharp nécessite que les développeurs rendent manuellement le texte et les images en utilisant son API de dessin GDI+. Pour ajouter un filigrane à un fichier PDF existant, créez un objet XGraphics pour le dessin et appliquez le contenu souhaité.
Exemple de filigrane de texte
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
gfx.TranslateTransform(page.Width / 2, page.Height / 2);
gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
var font = new XFont("Arial", 40);
var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;
const string filename = "existing.pdf";
var document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify);
foreach (var page in document.Pages)
{
var gfx = XGraphics.FromPdfPage(page); // get an XGraphics object
gfx.TranslateTransform(page.Width / 2, page.Height / 2);
gfx.RotateTransform(Math.Atan(page.Height / page.Width)); // Rotate for diagonal watermark
var font = new XFont("Arial", 40);
var brush = new XSolidBrush(XColor.FromArgb(128, XColors.Red));
gfx.DrawString("WATERMARK", font, brush, new XPoint(0, 0)); // Drawing beneath the existing content
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Imports PdfSharp.Pdf.IO
Private Const filename As String = "existing.pdf"
Private document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify)
For Each page In document.Pages
Dim gfx = XGraphics.FromPdfPage(page) ' get an XGraphics object
gfx.TranslateTransform(page.Width \ 2, page.Height \ 2)
gfx.RotateTransform(Math.Atan(page.Height \ page.Width)) ' Rotate for diagonal watermark
Dim font = New XFont("Arial", 40)
Dim brush = New XSolidBrush(XColor.FromArgb(128, XColors.Red))
gfx.DrawString("WATERMARK", font, brush, New XPoint(0, 0)) ' Drawing beneath the existing content
Next page
document.Save("watermarked.pdf")
$vbLabelText $csharpLabel
Image cassée Ajouter depuis Pixabay, sélectionner depuis vos fichiers ou glisser-déposer une image ici.
Cette implémentation applique manuellement un filigrane sur chaque page, nécessitant un positionnement et une personnalisation précis. Bien qu'il soit capable de gérer la tâche avec un résultat similaire à l'exemple IronPDF, PDFsharp nécessite plus de code et a une méthode plus complexe pour appliquer des filigranes de texte à du contenu existant ou à de nouveaux fichiers PDF.
Exemple de filigrane d'image
using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
XGraphics gfx = XGraphics.FromPdfPage(page);
gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
using PdfSharp.Pdf;
using PdfSharp.Drawing;
var document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify);
XImage watermark = XImage.FromFile("watermark.png");
foreach (var page in document.Pages)
{
XGraphics gfx = XGraphics.FromPdfPage(page);
gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2);
}
document.Save("watermarked.pdf");
Imports PdfSharp.Pdf
Imports PdfSharp.Drawing
Private document = PdfReader.Open("sample.pdf", PdfDocumentOpenMode.Modify)
Private watermark As XImage = XImage.FromFile("watermark.png")
For Each page In document.Pages
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
gfx.DrawImage(watermark, 50, 100, watermark.PixelWidth / 2, watermark.PixelHeight / 2)
Next page
document.Save("watermarked.pdf")
$vbLabelText $csharpLabel
Cette méthode place un filigrane d'image, mais contrairement à IronPDF, l'opacité doit être gérée séparément. Tout comme pour l'exemple de filigrane textuel, appliquer un filigrane basé sur une image sur un PDF existant avec PDFsharp nécessite une configuration plus élaborée et complexe par rapport à l'API de filigranage simplifiée d'IronPDF.
Comparer IronPDF et PDFsharp pour le filigranage
Facilité d'utilisation
IronPDF : Fournit des fonctions de haut niveau qui simplifient l'ajout de filigranes avec un code minimal. Il abstrait des opérations complexes, ce qui le rend idéal pour les développeurs qui ont besoin d'une solution rapide et efficace.
PDFSharp : Nécessite une implémentation manuelle en utilisant l'API graphique, ce qui augmente la complexité et le temps de développement. Il est mieux adapté aux développeurs qui ont besoin d'un contrôle précis sur le rendu mais qui sont à l'aise avec un codage supplémentaire.
Performance
IronPDF : Optimisé pour un traitement PDF à haute vitesse, capable de gérer efficacement de grands documents sans dégradation significative des performances.
PDFSharp : Bien que léger, il peut nécessiter des optimisations supplémentaires pour gérer de grands fichiers PDF. Les tâches complexes de filigrane avec plusieurs transformations peuvent entraîner une performance plus lente comparée à IronPDF.
Options de personnalisation
IronPDF : Prise en charge intégrée de l'opacité, de la rotation, du positionnement et de la personnalisation de la taille de la police. Les utilisateurs peuvent facilement ajuster les paramètres sans se plonger dans une logique de rendu complexe.
PDFSharp : Nécessite un codage supplémentaire pour l’opacité, les effets de transparence et la gestion des transformations. Bien que puissant, il exige un niveau de personnalisation plus élevé de la part du développeur, y compris l'utilisation du format var pour des tâches de rendu spécifiques.
Compatibilité
IronPDF : Entièrement compatible avec .NET 6+, .NET Core et .NET Framework, ce qui le rend adapté aux applications modernes et légacy.
PDFSharp : Prend en charge .NET Framework et .NET Core (via PDFSharpCore), mais peut manquer de certaines fonctionnalités modernes disponibles dans les frameworks plus récents.
Licences et coûts
IronPDF : Un produit commercial qui nécessite une licence payante mais qui inclut des options de licence perpétuelle, un support client et des mises à jour continues.
PDFSharp : Open source et gratuit à utiliser, ce qui en fait une solution économique pour les développeurs qui préfèrent un modèle de licence sans restriction mais sont prêts à gérer leur propre support et leurs propres mises à jour.
Conclusion
Pour les développeurs qui ont besoin d'une méthode simple et efficace pour ajouter des filigranes aux PDF, IronPDF est le choix supérieur en raison de son API conviviale et de ses fonctionnalités intégrées. Toutefois, si les contraintes budgétaires sont une préoccupation et que vous ne craignez pas d'écrire du code supplémentaire, PDFSharp est une solide alternative open-source. En fin de compte, le meilleur choix dépend des exigences de votre projet, de votre expertise en codage et des ressources disponibles.
🚀Essayez IronPDF par vous-même en téléchargeant la version d'essai gratuite et découvrez comment elle peut propulser vos projets PDF en C# à un niveau supérieur dès aujourd'hui !
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Découvrez les meilleures alternatives pour le filigrane QuestPDF dans .NET
SUIVANT > Explorez les meilleures alternatives pour ajouter des images aux PDFs dans .NET
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier