Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
PDF est l'abréviation de Portable Document Format (format de document portable). Il s'agit d'un type de fichier qui permet la visualisation conventionnelle de n'importe quel document sur de nombreux appareils différents. Les PDF sont souvent utilisés pour partager des documents importants tels que des CV avec des employeurs potentiels ou des factures avec des clients.
Malgré sa popularité, l'utilisation des PDF comme moyen de stockage et de partage des données présente également certains inconvénients. Par exemple, les PDF ne peuvent pas être partagés par courrier électronique, car ils doivent d'abord être ouverts dans un lecteur de PDF. Même si c'était le cas, les PDF ne seraient pas aussi clairs qu'un document Word lorsqu'ils sont ouverts sur un téléphone. En outre, les PDF ne peuvent pas être édités ou mis à jour comme les documents Word, à moins que vous ne disposiez d'un logiciel d'édition installé sur votre ordinateur, capable de reconnaître les données du fichier et de les reconvertir en format éditable. Cela signifie que les fichiers PDF doivent avoir la même apparence lorsque vous les ouvrez, quel que soit l'appareil que vous utilisez, qu'il s'agisse d'un PC ou d'un Mac. Les fichiers PDF sont donc fiables sur tous les appareils grâce aux normes familières qu'ils mettent en œuvre et que l'on ne retrouve pas dans d'autres formats de documents tels que JPEG ou GIF.
Dans cet article, nous allons passer en revue deux bibliothèques PDF .NET :
IronPDF est une bibliothèque .NET qui fournit des fonctions de construction pour créer, lire et manipuler des documents PDF avec seulement quelques lignes de code. L'article suivant vous montrera comment créer des fichiers PDF avec IronPDF. Le contenu est basé sur l'hypothèse que vous avez une compréhension des bases de Visual Studio ou C#, et que vous possédez une connaissance pratique de HTML.
Nous avons besoin de Visual Studio pour écrire, compiler et exécuter notre application, de C# pour écrire la logique et le code, et de HTML pour formater les fichiers PDF, notamment en ajoutant des titres, des en-têtes, des images, des paragraphes, etc. La bibliothèque IronPDF prend entièrement en charge .NET Core, .NET 5, Framework et Standard.
Nous pouvons créer un fichier PDF en C# avec seulement quelques lignes de code. Il s'agit d'une tâche simple si l'on dispose de connaissances de base en C# et en HTML. Pour en savoir plus sur IronPDF, visitez le site de l'entreprisesite officiel sur les fonctionnalités d'IronPDF.
L'élaboration d'une solution nécessite l'installation duPaquet NuGet pour IronPDF. Cliquez sur "Projet" directement dans la barre de menu. Une liste déroulante apparaît. Sélectionnez "GérerPaquets NuGetvous pouvez sélectionner le mot "N" dans le menu déroulant et le sélectionner. Une fenêtre comme celle-ci s'affiche :
Sélectionnez l'onglet "Parcourir" et la fenêtre suivante apparaîtra :
Tapez "IronPdf" dans le champ de recherche et appuyez sur "Entrée" La fenêtre résultante devrait apparaître :
Sélectionnez IronPDF :
Sélectionnez le bouton "Installer". Une fois l'installation réussie, la fenêtre résultante s'affiche :
Une fois que vous avez appuyé sur le bouton "OK", vous êtes prêt à partir.
Ajoutez l'espace de noms IronPdf
en haut du fichier.
using IronPdf;
using IronPdf;
Imports IronPdf
Le travail proprement dit commence à ce stade. Nous avons besoin d'un chemin d'accès au fichier pour stocker le document PDF construit. Pour ce faire, nous utilisons la boîte de dialogue SaveFileDialog, qui invite l'utilisateur à choisir un nom de fichier et un chemin d'accès.
private void Save_Click(object sender, EventArgs e)
{
// Code to Select the folder and save the file.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = @"D:\";
saveFileDialog1.Title = "Save Pdf File";
saveFileDialog1.DefaultExt = "pdf";
saveFileDialog1.Filter = "Pdf files (*.pdf)
*.pdf
All files (*.*)
*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string filename = saveFileDialog1.FileName;
// actual code that will create Pdf files
var HtmlLine = new HtmlToPdf();
HtmlLine.RenderHtmlAsPdf(PdfText.Text).SaveAs(filename);
// MessageBox to display that file save
MessageBox.Show("File Saved Successfully!");
}
}
private void Save_Click(object sender, EventArgs e)
{
// Code to Select the folder and save the file.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = @"D:\";
saveFileDialog1.Title = "Save Pdf File";
saveFileDialog1.DefaultExt = "pdf";
saveFileDialog1.Filter = "Pdf files (*.pdf)
*.pdf
All files (*.*)
*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string filename = saveFileDialog1.FileName;
// actual code that will create Pdf files
var HtmlLine = new HtmlToPdf();
HtmlLine.RenderHtmlAsPdf(PdfText.Text).SaveAs(filename);
// MessageBox to display that file save
MessageBox.Show("File Saved Successfully!");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
SaveFileDialog devrait ouvrir une boîte de dialogue qui vous permettra de sélectionner le dossier et le nom du fichier à l'endroit où vous souhaitez créer un document PDF. Le répertoire initial est défini sur le lecteur D, mais vous pouvez choisir n'importe quel répertoire. Comme nous ne traitons que des fichiers PDF, l'extension par défaut a été définie sur les fichiers PDF.
Dans la condition "if", le code réel qui créera le fichier PDF est inséré. Nous pouvons maintenant constater que nous avons réussi à générer un fichier PDF avec seulement deux lignes de code. PdfText est le nom d'une zone de texte riche qui contient le texte qui sera écrit dans un document PDF. Le nom du fichier est le chemin et le nom du fichier qui a été sélectionné via la méthode SaveFileDialog.
Vous pensez peut-être que le code pour la lecture des fichiers PDF sera complexe et difficile à écrire/comprendre-mais ne vous inquiétez pas-IronPDF l'a rendu plus facile et plus simple. Ce processus ne nécessite que deux lignes de code pour être réalisé!
Ajoutez le code suivant pour l'importation de la bibliothèque IronPdf
en haut du fichier.
using IronPdf;
using System;
using System.Windows.Forms;
using IronPdf;
using System;
using System.Windows.Forms;
Imports IronPdf
Imports System
Imports System.Windows.Forms
Ecrivez le code suivant à l'intérieur de la fonction.
private void Read_Click(object sender, EventArgs e)
{
PdfDocument PDF = PdfDocument.FromFile(FilePath.Text);
FileContent.Text = PDF.ExtractAllText();
}
private void Read_Click(object sender, EventArgs e)
{
PdfDocument PDF = PdfDocument.FromFile(FilePath.Text);
FileContent.Text = PDF.ExtractAllText();
}
Private Sub Read_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim PDF As PdfDocument = PdfDocument.FromFile(FilePath.Text)
FileContent.Text = PDF.ExtractAllText()
End Sub
Cette opération permet d'extraire toutes les informations de la source de données vers le visualiseur de documents. Tous les composants du rapport utiliseront ces données comme source de données.
GrapeCity Documents est un système de gestion de documents multiplateforme qui fournit une solution universelle de document, d'éditeur et de lecteur pour tous les formats de documents courants. Sans avoir besoin d'un programme supplémentaire comme Adobe Acrobat, la riche bibliothèque fournie par Standard .NET 2.0 peut être utilisée pour lire, générer, modifier et enregistrer des fichiers PDF. Il dispose d'un ensemble de fonctionnalités robustes qui permettent aux développeurs de créer des fichiers PDF incluant une prise en charge avancée des polices, des photos, des graphiques, des codes-barres, des commentaires, des contours, des tampons, des filigranes, et bien plus encore.
Dans les applications Standard .NET, vous pouvez utiliser GrapeCityPDF pour produire des documents PDF répondant à des besoins professionnels simples ou complexes. En outre, vous pouvez charger, modifier et enregistrer des PDF à partir de n'importe quelle source.
GrapeCityPDF vous permet d'enregistrer un PDF en tant qu'image sans sacrifier la qualité de l'image. En outre, quelques lignes de code suffisent pour mettre en œuvre cette fonctionnalité.
GrapeCity Documents PDF Viewer est une visionneuse client légère, basée sur la programmation, qui permet de visualiser les fichiers PDF. La plupart des fonctionnalités habituelles des PDF sont prises en charge.
La bibliothèque GrapeCityPDF possède de nombreuses fonctionnalités qui vous permettent de créer des documents PDF complexes contenant des informations telles que du texte, des graphiques, des photos, des annotations, des contours, etc.
Il existe deux méthodes pour installer GrapeCity.
Sélectionnez le bouton télécharger les fichiers sources zippés pour télécharger les sources d'échantillons actuelles.
Extrayez les fichiers directement du fichier zip téléchargé dans un répertoire de votre ordinateur.
Naviguez jusqu'à ce répertoire.
Exécutez le fichier batch run.cmd. Cela créera les sources de l'échantillon. Démarrez le service SupportApi et ouvrez l'URL http://localhost:3003
dans votre navigateur par défaut.
La rubrique ci-dessous décrit la procédure d'installation de l'édition WinForms. Les étapes suivantes fournissent les instructions pour installer l'édition WinForms :
Si vous êtes un nouvel utilisateur :
Inscrivez-vous auprès de Component One et créez un compte en remplissant les champs requis.
La vérification sera envoyée à votre adresse électronique.
Le programme d'installation installe les contrôles et affiche sa progression au fur et à mesure. Vous ne pourrez pas annuler le processus d'installation tant que cet écran sera affiché.
using System;
using System.IO;
using System.Drawing;
using System.Text;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Pdf.Structure;
using GrapeCity.Documents.Pdf.MarkedContent;
using GrapeCity.Documents.Pdf.Graphics;
using GrapeCity.Documents.Pdf.Annotations;
using GCTEXT = GrapeCity.Documents.Text;
using GCDRAW = GrapeCity.Documents.Drawing;
namespace GcPdfWeb.Samples.Basics
{
// This sample shows how to create a PDF/A-3u compliant document.
public class PdfA
{
public void CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
var date = new DateTime(1961, 4, 12, 6, 7, 0, DateTimeKind.Utc);
// Mark the document as PDF/A-3u conformant:
doc.ConformanceLevel = PdfAConformanceLevel.PdfA3u;
var fnt = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "arial.ttf"));
var gap = 36;
// PDF/A-3a requires all content to be tagged so create and populate StructElement when rendering:
StructElement sePart = new StructElement("Part");
doc.StructTreeRoot.Children.Add(sePart);
TextLayout tl = null;
// Add 3 pages with sample content tagged according to PDF/A rules:
for (int pageNo = 1; pageNo <= 3; ++pageNo)
{
// add page
var page = doc.Pages.Add();
var g = page.Graphics;
float y = 72;
if (doc.Pages.Count == 1)
{
// Create paragraph element:
var seParagraph = new StructElement("P") { DefaultPage = page };
// Add it to Part element:
sePart.Children.Add(seParagraph);
tl = g.CreateTextLayout();
tl.MarginAll = 72;
tl.MaxWidth = page.Size.Width;
tl.DefaultFormat.Font = fnt;
tl.DefaultFormat.FontBold = true;
tl.DefaultFormat.FontSize = 20;
tl.Append("PDF/A-3A Document");
// PerformLayout is done automatically in a new TextLayout or after a Clear():
//tl.PerformLayout(true);
// Draw TextLayout within tagged content:
g.BeginMarkedContent(new TagMcid("P", 0));
g.DrawTextLayout(tl, PointF.Empty);
g.EndMarkedContent();
y = tl.ContentRectangle.Bottom + gap;
seParagraph.ContentItems.Add(new McidContentItemLink(0));
}
// Add some sample paragraphs tagged according to PDF/A rules:
for (int i = 1; i <= 3; ++i)
{
// Create paragraph element:
var seParagraph = new StructElement("P") { DefaultPage = page };
// Add it to Part element:
sePart.Children.Add(seParagraph);
var sb = new StringBuilder();
sb.Append(string.Format("Paragraph {0} on page {1}: ", i, pageNo));
sb.Append(Common.Util.LoremIpsum(1, 2, 4, 5, 10));
var para = sb.ToString();
tl.Clear();
tl.DefaultFormat.FontSize = 14;
tl.DefaultFormat.FontBold = false;
tl.MarginTop = y;
tl.Append(para);
// Draw TextLayout within tagged content:
g.BeginMarkedContent(new TagMcid("P", i));
g.DrawTextLayout(tl, PointF.Empty);
g.EndMarkedContent();
y += tl.ContentHeight + gap;
// Add content item to paragraph StructElement:
seParagraph.ContentItems.Add(new McidContentItemLink(i));
// PDF/A-3 allows embedding files into document, but they should be associated with some document element
// add embedded file associated with seParagraph:
var ef1 = EmbeddedFileStream.FromBytes(doc, Encoding.UTF8.GetBytes(para));
// ModificationDate and MimeType should be specified in case of PDF/A:
ef1.ModificationDate = date;
ef1.MimeType = "text/plain";
var fn = string.Format("Page{0}_Paragraph{1}.txt", pageNo, i);
var fs1 = FileSpecification.FromEmbeddedStream(fn, ef1);
// UnicodeFile.FileName should be specified for PDF/A compliance:
fs1.UnicodeFile.FileName = fs1.File.FileName;
// Relationship should be specified in case of PDF/A:
fs1.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add(fn, fs1);
seParagraph.AssociatedFiles.Add(fs1);
}
}
// PDF/A-3 allows transparency drawing in PDF file, add some:
var gpage = doc.Pages [0].Graphics;
gpage.FillRectangle(new RectangleF(20, 20, 200, 200), Color.FromArgb(40, Color.Red));
// PDF/A-3 allows using FormXObjects, add one with transparency:
var r = new RectangleF(0, 0, 144, 72);
var fxo = new FormXObject(doc, r);
var gfxo = fxo.Graphics;
gfxo.FillRectangle(r, Color.FromArgb(40, Color.Violet));
TextFormat tf = new TextFormat()
{
Font = fnt,
FontSize = 16,
ForeColor = Color.FromArgb(100, Color.Black),
};
gfxo.DrawString("FormXObject", tf, r, TextAlignment.Center, ParagraphAlignment.Center);
gfxo.DrawRectangle(r, Color.Blue, 3);
gpage.DrawForm(fxo, new RectangleF(300, 250, r.Width, r.Height), null, ImageAlign.ScaleImage);
// PDF/A-3 allows using embedded files, but each embedded file must be associated with a document's element:
EmbeddedFileStream ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "WordDocs", "ProcurementLetter.docx"));
// ModificationDate and MimeType should be specified for EmbeddedFile in PDF/A:
ef.ModificationDate = date;
ef.MimeType = "application/msword";
var fs = FileSpecification.FromEmbeddedFile(ef);
fs.UnicodeFile.FileName = fs.File.FileName;
fs.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add("ProcurementLetter.docx", fs);
// Associate embedded file with the document:
doc.AssociatedFiles.Add(fs);
// Add an attachment associated with an annotation:
var sa = new StampAnnotation()
{
UserName = "Minerva",
Font = fnt,
Rect = new RectangleF(300, 36, 220, 72),
};
sa.Flags
= AnnotationFlags.Print;
// Use a FormXObject to represent the stamp annotation:
var stampFxo = new FormXObject(doc, new RectangleF(PointF.Empty, sa.Rect.Size));
var gstampFxo = stampFxo.Graphics;
gstampFxo.FillRectangle(stampFxo.Bounds, Color.FromArgb(40, Color.Green));
gstampFxo.DrawString("Stamp Annotation\nassociated with minerva.jpg", tf, stampFxo.Bounds, TextAlignment.Center, ParagraphAlignment.Center);
gstampFxo.DrawRectangle(stampFxo.Bounds, Color.Green, 3);
//
sa.AppearanceStreams.Normal.Default = stampFxo;
doc.Pages [0].Annotations.Add(sa);
ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "Images", "minerva.jpg"));
ef.ModificationDate = date;
ef.MimeType = "image/jpeg";
fs = FileSpecification.FromEmbeddedFile(ef);
fs.UnicodeFile.FileName = fs.File.FileName;
fs.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add("minerva.jpg", fs);
sa.AssociatedFiles.Add(fs);
// Mark the document as conforming to Tagged PDF conventions (required for PDF/A):
doc.MarkInfo.Marked = true;
// Metadata.CreatorTool and DocumentInfo.Creator should be the same for a PDF/A document:
doc.Metadata.CreatorTool = doc.DocumentInfo.Creator;
// A title should be specified for PDF/A document:
doc.Metadata.Title = "GcPdf Document";
doc.ViewerPreferences.DisplayDocTitle = true;
// Done:
doc.Save(stream);
}
}
}
using System;
using System.IO;
using System.Drawing;
using System.Text;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Common;
using GrapeCity.Documents.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Pdf.Structure;
using GrapeCity.Documents.Pdf.MarkedContent;
using GrapeCity.Documents.Pdf.Graphics;
using GrapeCity.Documents.Pdf.Annotations;
using GCTEXT = GrapeCity.Documents.Text;
using GCDRAW = GrapeCity.Documents.Drawing;
namespace GcPdfWeb.Samples.Basics
{
// This sample shows how to create a PDF/A-3u compliant document.
public class PdfA
{
public void CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
var date = new DateTime(1961, 4, 12, 6, 7, 0, DateTimeKind.Utc);
// Mark the document as PDF/A-3u conformant:
doc.ConformanceLevel = PdfAConformanceLevel.PdfA3u;
var fnt = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "arial.ttf"));
var gap = 36;
// PDF/A-3a requires all content to be tagged so create and populate StructElement when rendering:
StructElement sePart = new StructElement("Part");
doc.StructTreeRoot.Children.Add(sePart);
TextLayout tl = null;
// Add 3 pages with sample content tagged according to PDF/A rules:
for (int pageNo = 1; pageNo <= 3; ++pageNo)
{
// add page
var page = doc.Pages.Add();
var g = page.Graphics;
float y = 72;
if (doc.Pages.Count == 1)
{
// Create paragraph element:
var seParagraph = new StructElement("P") { DefaultPage = page };
// Add it to Part element:
sePart.Children.Add(seParagraph);
tl = g.CreateTextLayout();
tl.MarginAll = 72;
tl.MaxWidth = page.Size.Width;
tl.DefaultFormat.Font = fnt;
tl.DefaultFormat.FontBold = true;
tl.DefaultFormat.FontSize = 20;
tl.Append("PDF/A-3A Document");
// PerformLayout is done automatically in a new TextLayout or after a Clear():
//tl.PerformLayout(true);
// Draw TextLayout within tagged content:
g.BeginMarkedContent(new TagMcid("P", 0));
g.DrawTextLayout(tl, PointF.Empty);
g.EndMarkedContent();
y = tl.ContentRectangle.Bottom + gap;
seParagraph.ContentItems.Add(new McidContentItemLink(0));
}
// Add some sample paragraphs tagged according to PDF/A rules:
for (int i = 1; i <= 3; ++i)
{
// Create paragraph element:
var seParagraph = new StructElement("P") { DefaultPage = page };
// Add it to Part element:
sePart.Children.Add(seParagraph);
var sb = new StringBuilder();
sb.Append(string.Format("Paragraph {0} on page {1}: ", i, pageNo));
sb.Append(Common.Util.LoremIpsum(1, 2, 4, 5, 10));
var para = sb.ToString();
tl.Clear();
tl.DefaultFormat.FontSize = 14;
tl.DefaultFormat.FontBold = false;
tl.MarginTop = y;
tl.Append(para);
// Draw TextLayout within tagged content:
g.BeginMarkedContent(new TagMcid("P", i));
g.DrawTextLayout(tl, PointF.Empty);
g.EndMarkedContent();
y += tl.ContentHeight + gap;
// Add content item to paragraph StructElement:
seParagraph.ContentItems.Add(new McidContentItemLink(i));
// PDF/A-3 allows embedding files into document, but they should be associated with some document element
// add embedded file associated with seParagraph:
var ef1 = EmbeddedFileStream.FromBytes(doc, Encoding.UTF8.GetBytes(para));
// ModificationDate and MimeType should be specified in case of PDF/A:
ef1.ModificationDate = date;
ef1.MimeType = "text/plain";
var fn = string.Format("Page{0}_Paragraph{1}.txt", pageNo, i);
var fs1 = FileSpecification.FromEmbeddedStream(fn, ef1);
// UnicodeFile.FileName should be specified for PDF/A compliance:
fs1.UnicodeFile.FileName = fs1.File.FileName;
// Relationship should be specified in case of PDF/A:
fs1.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add(fn, fs1);
seParagraph.AssociatedFiles.Add(fs1);
}
}
// PDF/A-3 allows transparency drawing in PDF file, add some:
var gpage = doc.Pages [0].Graphics;
gpage.FillRectangle(new RectangleF(20, 20, 200, 200), Color.FromArgb(40, Color.Red));
// PDF/A-3 allows using FormXObjects, add one with transparency:
var r = new RectangleF(0, 0, 144, 72);
var fxo = new FormXObject(doc, r);
var gfxo = fxo.Graphics;
gfxo.FillRectangle(r, Color.FromArgb(40, Color.Violet));
TextFormat tf = new TextFormat()
{
Font = fnt,
FontSize = 16,
ForeColor = Color.FromArgb(100, Color.Black),
};
gfxo.DrawString("FormXObject", tf, r, TextAlignment.Center, ParagraphAlignment.Center);
gfxo.DrawRectangle(r, Color.Blue, 3);
gpage.DrawForm(fxo, new RectangleF(300, 250, r.Width, r.Height), null, ImageAlign.ScaleImage);
// PDF/A-3 allows using embedded files, but each embedded file must be associated with a document's element:
EmbeddedFileStream ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "WordDocs", "ProcurementLetter.docx"));
// ModificationDate and MimeType should be specified for EmbeddedFile in PDF/A:
ef.ModificationDate = date;
ef.MimeType = "application/msword";
var fs = FileSpecification.FromEmbeddedFile(ef);
fs.UnicodeFile.FileName = fs.File.FileName;
fs.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add("ProcurementLetter.docx", fs);
// Associate embedded file with the document:
doc.AssociatedFiles.Add(fs);
// Add an attachment associated with an annotation:
var sa = new StampAnnotation()
{
UserName = "Minerva",
Font = fnt,
Rect = new RectangleF(300, 36, 220, 72),
};
sa.Flags
= AnnotationFlags.Print;
// Use a FormXObject to represent the stamp annotation:
var stampFxo = new FormXObject(doc, new RectangleF(PointF.Empty, sa.Rect.Size));
var gstampFxo = stampFxo.Graphics;
gstampFxo.FillRectangle(stampFxo.Bounds, Color.FromArgb(40, Color.Green));
gstampFxo.DrawString("Stamp Annotation\nassociated with minerva.jpg", tf, stampFxo.Bounds, TextAlignment.Center, ParagraphAlignment.Center);
gstampFxo.DrawRectangle(stampFxo.Bounds, Color.Green, 3);
//
sa.AppearanceStreams.Normal.Default = stampFxo;
doc.Pages [0].Annotations.Add(sa);
ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "Images", "minerva.jpg"));
ef.ModificationDate = date;
ef.MimeType = "image/jpeg";
fs = FileSpecification.FromEmbeddedFile(ef);
fs.UnicodeFile.FileName = fs.File.FileName;
fs.Relationship = AFRelationship.Unspecified;
doc.EmbeddedFiles.Add("minerva.jpg", fs);
sa.AssociatedFiles.Add(fs);
// Mark the document as conforming to Tagged PDF conventions (required for PDF/A):
doc.MarkInfo.Marked = true;
// Metadata.CreatorTool and DocumentInfo.Creator should be the same for a PDF/A document:
doc.Metadata.CreatorTool = doc.DocumentInfo.Creator;
// A title should be specified for PDF/A document:
doc.Metadata.Title = "GcPdf Document";
doc.ViewerPreferences.DisplayDocTitle = true;
// Done:
doc.Save(stream);
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
GrapeCityPDF n'est pas une bibliothèque avancée pour les PDF - elle possède un nombre limité de fonctionnalités par rapport à IronPDF.
La garantie de remboursement de 30 jours : Une fois la licence achetée, vous bénéficiez d'une garantie de remboursement de 30 jours. Si la licence n'est pas adaptée à vos besoins, IronPDF s'engage à vous rembourser dans les 30 jours.
Intégration facile : L'intégration d'IronPDF à un projet en cours et à votre environnement est un processus transparent réalisé à l'aide d'une seule ligne de code. Ceci peut être réalisé lors de l'intégration à l'aide de la méthode NuGet Package ou téléchargé directement en ligne et intégré dans votre environnement.
Licence perpétuelle : Chaque licence est achetée une seule fois, sans obligation de renouvellement.
Support gratuit et mises à jour du produit : Chaque licence est assortie d'une assistance permanente assurée directement par l'équipe à l'origine du produit et d'un an de mises à jour gratuites du produit. Il est possible d'acheter des extensions à tout moment. Les extensions peuvent être visualisées avant l'achat.
Licences immédiates : Dès réception du paiement, les clés de licence enregistrées sont envoyées.
Toutes les licences sont perpétuelles et s'appliquent à la mise en place, au développement et à la production.
Licence perpétuelle
Cette formule permet à un seul développeur de logiciels au sein d'une organisation d'utiliser Iron Software en un seul endroit. Iron Software peut être utilisé dans une application intranet, une application web ou un logiciel de bureau. Il est interdit de partager les licences en dehors d'une organisation ou d'une relation agence/client, car elles ne sont pas transférables. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits qui ne sont pas expressément accordés dans le cadre de l'accord, sans redistribution OEM et utilisation du Iron Software en tant que SaaS sans achat d'une couverture supplémentaire.
Tarification : à partir de $749 par an.
Licence perpétuelle
Cette licence permet à un nombre prédéterminé de développeurs de logiciels au sein d'une organisation d'utiliser Iron Software dans de nombreux sites, jusqu'à un maximum de dix. Iron Software peut être utilisé dans autant de sites web, d'applications intranet ou de logiciels de bureau que vous le souhaitez. Les licences ne sont pas transférables, il est donc interdit de les partager en dehors d'une organisation ou d'une relation agence/client. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits qui ne sont pas expressément accordés dans le cadre de l'accord, y compris la redistribution OEM et l'utilisation du Iron Software en tant que SaaS sans achat d'une couverture supplémentaire. Cette licence peut être intégrée à un seul projet jusqu'à un maximum de 10.
Tarification: À partir de 999 $ par an.
Licence perpétuelle
Cela vous permet d'avoir un nombre illimité de développeurs de logiciels dans une seule organisation et d'utiliser Iron Software dans un nombre illimité de sites. Iron Software peut être utilisé dans autant d'applications intranet, d'applications logicielles de bureau ou de sites web que vous le souhaitez. Les licences ne sont pas transférables et ne peuvent être partagées en dehors d'une organisation ou d'une relation agence/client. Ce type de licence, comme tous les autres types de licence, exclut expressément tous les droits non accordés dans le cadre de l'accord, y compris la redistribution OEM et l'utilisation du logiciel Iron Software en tant que SaaS sans achat d'une couverture supplémentaire.
Tarification : A partir de 2999 $ par an.
Redistribution libre de droits : Cela vous permet de distribuer le Iron Software dans le cadre de plusieurs produits commerciaux conditionnés différemment(sans avoir à payer de redevances) en fonction du nombre de projets couverts par la licence de base. Cela permettra de déployer Iron Software dans le cadre de services logiciels SaaS, qui sont basés sur le nombre de projets couverts par la licence de base.
Tarification : A partir de 1599 $ par an.
1 Lieu de distribution
Ce forfait comprend une licence de développeur et un seul lieu de distribution, sans support ni maintenance.
Tarification : A partir de 999 $ par an.
Nombre illimité de lieux de distribution
Ce paquet comprend une licence de développeur avec un nombre illimité d'emplacements de distribution. Il n'est pas accompagné d'une assistance et d'une maintenance. GrapeCity ne prend pas en charge le SaaS et l'OEM.
Tarifs : À partir de 2799 $ par an.
Nombre illimité de lieux de distribution
Ce forfait comprend cinq licences de développeur avec un nombre illimité de lieux de distribution, sans assistance ni maintenance. GrapeCity ne prend pas en charge le SaaS et l'OEM.
Tarifs : À partir de 5799 $ par an.
Le package IronPDF Lite One-Developer est livré avec un an de support et coûte environ $749. GrapeCity Documents for PDF, quant à lui, comprend un package pour un seul développeur et coûte 999 dollars sans aucune assistance. Le Package professionnel d'IronPDF, qui comprend le pack 10 développeurs et s'accompagne d'un an d'assistance, coûte 999 dollars. En revanche, GrapeCity n'a pas de pack 10 développeurs, mais seulement un pack 5 développeurs qui coûte 5799 $.
Les offres IronPDF Lite et Professional proposent un service SaaS ou OEM, ainsi qu'une option d'assistance de 5 ans. L'offre Lite pour un développeur comprend cinq ans d'assistance, de SaaS et de services OEM au prix de 2897 USD. GrapeCity n'offre pas de service SaaS ou OEM, ni d'option d'assistance sur 5 ans. L'offre Iron Professional 10 pour les développeurs est assortie d'une assistance de 5 ans, de services Saas et OEM et coûte 3397 USD. GrapeCity n'a pas d'offre pour 10 développeurs.
GrapeCity Documents for PDF permet aux développeurs d'exporter/importer, de créer des AcroForms(Formulaires PDF)et d'exécuter des PDF dans de nombreuses applications de bureau. Avec GrapeCity Documents pour PDF(GcPdf)vous êtes sur la bonne voie pour fournir des solutions PDF complètes à vos clients.
Nous recommandons vivement IronPDF, qui offre une plus grande précision. Les concurrents qui exécutent des fonctions similaires peuvent rencontrer des problèmes d'imprécision tels que l'impossibilité de convertir certaines images, ce qui se traduit par des caractères inconnus. En revanche, IronPDF fournit des résultats précis.
Les packages IronPDF offrent des licences et une assistance compétitives sans coûts permanents. IronPDF commence à $749 avec des packages incluant une plus grande gamme de fonctionnalités. GrapeCity PDF est disponible à partir de 1649 $ par an. IronPDF prend également en charge plusieurs plates-formes à un prix unique!
Si vous n'êtes pas encore client d'IronPDF, vous pouvez accéder à la version d'essai gratuite pour découvrir toutes les fonctionnalités disponibles. Si vous achetez la suite Iron complète, vous pouvez obtenir les cinq produits pour le prix de deux. Pour plus d'informations concernantLicence IronPDFpour plus d'informations, veuillez consulter le site Web d'Iron Software à l'adresse suivantePage produit Iron Suite pour consulter les informations complètes sur le paquet.
9 produits de l'API .NET pour vos documents de bureau