Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Pour ajouter du texte à un fichier PDF existant :
Le code suivant vous montre comment ajouter du texte dans un fichier PDF existant.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddText()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Get particular page
var page = document.Pages.Add();
// Create text fragment
var textFragment = new Aspose.Pdf.Text.TextFragment("main text");
textFragment.Position = new Aspose.Pdf.Text.Position(100, 600);
// Set text properties
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Create TextBuilder object
var textBuilder = new Aspose.Pdf.Text.TextBuilder(page);
// Append the text fragment to the PDF page
textBuilder.AppendText(textFragment);
// Save PDF document
document.Save(dataDir + "AddText_out.pdf");
}
}
Le code suivant montre comment charger une police à partir d’un objet Stream lors de l’ajout de texte à un document PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void LoadingFontFromStream()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
var fontFile = dataDir + "HPSimplified.ttf";
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "LoadFonts.pdf"))
{
// Create text builder object for first page of document
var textBuilder = new Aspose.Pdf.Text.TextBuilder(document.Pages[1]);
// Create text fragment with sample string
var textFragment = new Aspose.Pdf.Text.TextFragment("Hello world");
if (File.Exists(fontFile))
{
// Load the TrueType font into stream object
using (FileStream fontStream = File.OpenRead(fontFile))
{
// Set the font name for text string
textFragment.TextState.Font = Aspose.Pdf.Text.FontRepository.OpenFont(fontStream, Aspose.Pdf.Text.FontTypes.TTF);
// Specify the position for Text Fragment
textFragment.Position = new Aspose.Pdf.Text.Position(10, 10);
// Add the text to TextBuilder so that it can be placed over the PDF file
textBuilder.AppendText(textFragment);
}
// Save PDF document
document.Save(dataDir + "LoadingFontFromStream_out.pdf");
}
}
}
Le code suivant vous montre comment ajouter du texte dans un document PDF en utilisant la classe TextParagraph.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextWithTextParagraph()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of Document object
var page = document.Pages.Add();
var builder = new Aspose.Pdf.Text.TextBuilder(page);
// Create text paragraph
var paragraph = new Aspose.Pdf.Text.TextParagraph();
// Set subsequent lines indent
paragraph.SubsequentLinesIndent = 20;
// Specify the location to add TextParagraph
paragraph.Rectangle = new Aspose.Pdf.Rectangle(100, 300, 200, 700);
// Specify word wraping mode
paragraph.FormattingOptions.WrapMode = Aspose.Pdf.Text.TextFormattingOptions.WordWrapMode.ByWords;
// Create text fragment
var fragment = new Aspose.Pdf.Text.TextFragment("the quick brown fox jumps over the lazy dog");
fragment.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Times New Roman");
fragment.TextState.FontSize = 12;
// Add fragment to paragraph
paragraph.AppendLine(fragment);
// Add paragraph
builder.AppendParagraph(paragraph);
// Save PDF document
document.Save(dataDir + "AddTextUsingTextParagraph_out.pdf");
}
}
Une page PDF peut comprendre un ou plusieurs objets TextFragment, où chaque objet TextFragment peut avoir une ou plusieurs instances de TextSegment. Pour définir un lien hypertexte pour TextSegment, la propriété Hyperlink de la classe TextSegment peut être utilisée tout en fournissant l’objet d’instance Aspose.Pdf.WebHyperlink. Veuillez essayer d’utiliser le code suivant pour accomplir cette exigence.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddHyperlinkToTextSegment()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create TextFragment instance
var fragment = new Aspose.Pdf.Text.TextFragment("Sample Text Fragment");
// Set horizontal alignment for TextFragment
fragment.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;
// Create a textsegment with sample text
var segment = new Aspose.Pdf.Text.TextSegment(" ... Text Segment 1...");
// Add segment to segments collection of TextFragment
fragment.Segments.Add(segment);
// Create a new TextSegment
segment = new Aspose.Pdf.Text.TextSegment("Link to Google");
// Add segment to segments collection of TextFragment
fragment.Segments.Add(segment);
// Set hyperlink for TextSegment
segment.Hyperlink = new Aspose.Pdf.WebHyperlink("www.google.com");
// Set forground color for text segment
segment.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
// Set text formatting as italic
segment.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Italic;
// Create another TextSegment object
segment = new Aspose.Pdf.Text.TextSegment("TextSegment without hyperlink");
// Add segment to segments collection of TextFragment
fragment.Segments.Add(segment);
// Add TextFragment to paragraphs collection of page object
page.Paragraphs.Add(fragment);
// Save PDF document
document.Save(dataDir + "AddHyperlinkToTextSegment_out.pdf");
}
}
Aspose.PDF for .NET offre la fonctionnalité d’utiliser des polices personnalisées/TrueType lors de la création/manipulation du contenu des fichiers PDF afin que le contenu des fichiers soit affiché en utilisant des contenus autres que les polices système par défaut. À partir de la version Aspose.PDF for .NET 10.3.0, nous avons fourni le support pour les polices Open Type.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void UseOTFFont()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create TextFragment instnace with sample text
var fragment = new Aspose.Pdf.Text.TextFragment("Sample Text in OTF font");
// Find font inside system font directory
// Fragment.TextState.Font = FontRepository.FindFont("HelveticaNeueLT Pro 45 Lt");
// Or you can even specify the path of OTF font in system directory
fragment.TextState.Font = Aspose.Pdf.Text.FontRepository.OpenFont(dataDir + "space age.otf");
// Specify to emend font inside PDF file, so that its displayed properly,
// Even if specific font is not installed/present over target machine
fragment.TextState.Font.IsEmbedded = true;
// Add TextFragment to paragraphs collection of Page instance
page.Paragraphs.Add(fragment);
// Save PDF document
document.Save(dataDir + "OTFFont_out.pdf");
}
}
La classe Aspose.Pdf.Generator.Text contient une propriété appelée IsHtmlTagSupported qui permet d’ajouter des balises/contenus HTML dans des fichiers PDF. Le contenu ajouté est rendu dans des balises HTML natives au lieu d’apparaître comme une simple chaîne de texte. Pour prendre en charge une fonctionnalité similaire dans le nouveau modèle d’objet document (DOM) de l’espace de noms Aspose.Pdf, la classe HtmlFragment a été introduite.
L’instance HtmlFragment peut être utilisée pour spécifier les contenus HTML qui doivent être placés à l’intérieur du fichier PDF. Semblable à TextFragment, HtmlFragment est un objet de niveau paragraphe et peut être ajouté à la collection de paragraphes de l’objet Page. Les extraits de code suivants montrent les étapes pour placer des contenus HTML à l’intérieur d’un fichier PDF en utilisant l’approche DOM.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddHTMLStringUsingDOM()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add a page to pages collection of PDF file
var page = document.Pages.Add();
// Instantiate HtmlFragment with HTML contnets
var title = new Aspose.Pdf.HtmlFragment("<fontsize=10><b><i>Table</i></b></fontsize>");
// Set bottom margin information
title.Margin.Bottom = 10;
// Set top margin information
title.Margin.Top = 200;
// Add HTML Fragment to paragraphs collection of page
page.Paragraphs.Add(title);
// Save PDF document
document.Save(dataDir + "AddHTMLUsingDOM_out.pdf");
}
}
Le code suivant démontre les étapes pour ajouter des listes ordonnées HTML dans le document :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddHTMLOrderedListIntoDocument()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Instantiate HtmlFragment object with corresponding HTML fragment
var fragment = new Aspose.Pdf.HtmlFragment("`<body style='line-height: 100px;'><ul><li>First</li><li>Second</li><li>Third</li><li>Fourth</li><li>Fifth</li></ul>Text after the list.<br/>Next line<br/>Last line</body>`");
// Add Page in Pages Collection
var page = document.Pages.Add();
// Add HtmlFragment inside page
page.Paragraphs.Add(fragment);
// Save PDF document
document.Save(dataDir + "AddHTMLOrderedListIntoDocuments_out.pdf");
}
}
Vous pouvez également définir le formatage de la chaîne HTML en utilisant l’objet TextState comme suit :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetHTMLStringFormatting()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
var fragment = new Aspose.Pdf.HtmlFragment("some text");
fragment.TextState = new Aspose.Pdf.Text.TextState();
fragment.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Calibri");
// Add Page in Pages Collection
var page = document.Pages.Add();
// Add HtmlFragment inside page
page.Paragraphs.Add(fragment);
// Save PDF document
document.Save(dataDir + "SetHTMLStringFormatting_out.pdf");
}
}
Dans le cas où vous définissez certaines valeurs d’attributs de texte via le balisage HTML et que vous fournissez ensuite les mêmes valeurs dans les propriétés TextState, elles écraseront les paramètres HTML par les propriétés de l’instance TextState. Les extraits de code suivants montrent le comportement décrit.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddHTMLUsingDOMAndOverwrite()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add a page to pages collection of PDF file
var page = document.Pages.Add();
// Instantiate HtmlFragment with HTML contnets
var title = new Aspose.Pdf.HtmlFragment("<p style='font-family: Verdana'><b><i>Table contains text</i></b></p>");
//Font-family from 'Verdana' will be reset to 'Arial'
title.TextState = new Aspose.Pdf.Text.TextState("Arial");
title.TextState.FontSize = 20;
// Set bottom margin information
title.Margin.Bottom = 10;
// Set top margin information
title.Margin.Top = 400;
// Add HTML Fragment to paragraphs collection of page
page.Paragraphs.Add(title);
// Save PDF document
document.Save(dataDir + "AddHTMLUsingDOMAndOverwrite_out.pdf");
}
}
Les notes de bas de page indiquent des notes dans le texte de votre document en utilisant des numéros en exposant consécutifs. La note réelle est indentée et peut apparaître comme une note de bas de page en bas de la page.
Dans un système de référence de notes de bas de page, indiquez une référence par :
L’avantage de la numérotation des notes de bas de page est que le lecteur peut simplement jeter un coup d’œil vers le bas de la page pour découvrir la source d’une référence qui l’intéresse.
Veuillez suivre les étapes spécifiées ci-dessous pour créer une note de bas de page :
L’exemple suivant démontre comment ajouter des notes de bas de page en bas de la page PDF et définir un style de ligne personnalisé.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CustomLineStyleForFootNote()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create GraphInfo object
var graph = new Aspose.Pdf.GraphInfo();
// Set line width as 2
graph.LineWidth = 2;
// Set the color for graph object
graph.Color = Aspose.Pdf.Color.Red;
// Set dash array value as 3
graph.DashArray = new int[] { 3 };
// Set dash phase value as 1
graph.DashPhase = 1;
// Set footnote line style for page as graph
page.NoteLineStyle = graph;
// Create TextFragment instance
var text = new Aspose.Pdf.Text.TextFragment("Hello World");
// Set FootNote value for TextFragment
text.FootNote = new Aspose.Pdf.Note("foot note for test text 1");
// Add TextFragment to paragraphs collection of first page of document
page.Paragraphs.Add(text);
// Create second TextFragment
text = new Aspose.Pdf.Text.TextFragment("Aspose.PDF for .NET");
// Set FootNote for second text fragment
text.FootNote = new Aspose.Pdf.Note("foot note for test text 2");
// Add second text fragment to paragraphs collection of PDF file
page.Paragraphs.Add(text);
// Save PDF document
document.Save(dataDir + "CustomLineStyleForFootNote_out.pdf");
}
}
Nous pouvons définir le formatage de l’étiquette de note de bas de page (identifiant de note) en utilisant l’objet TextState comme suit :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void FormattingUsingTextStateObject()
{
var text = new Aspose.Pdf.Text.TextFragment("test text 1");
text.FootNote = new Aspose.Pdf.Note("foot note for test text 1");
text.FootNote.Text = "21";
text.FootNote.TextState = new Aspose.Pdf.Text.TextState();
text.FootNote.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
text.FootNote.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Italic;
}
Par défaut, le numéro de la note de bas de page est incrémental à partir de 1. Cependant, nous pouvons avoir besoin de définir une étiquette de note de bas de page personnalisée. Pour accomplir cette exigence, veuillez essayer d’utiliser le code suivant.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CustomizeFootNoteLabel()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create GraphInfo object
var graph = new Aspose.Pdf.GraphInfo();
// Set line width as 2
graph.LineWidth = 2;
// Set the color for graph object
graph.Color = Aspose.Pdf.Color.Red;
// Set dash array value as 3
graph.DashArray = new int[] { 3 };
// Set dash phase value as 1
graph.DashPhase = 1;
// Set footnote line style for page as graph
page.NoteLineStyle = graph;
// Create TextFragment instance
var text = new Aspose.Pdf.Text.TextFragment("Hello World");
// Set FootNote value for TextFragment
text.FootNote = new Aspose.Pdf.Note("foot note for test text 1");
// Specify custom label for FootNote
text.FootNote.Text = " Aspose(2015)";
// Add TextFragment to paragraphs collection of first page of document
page.Paragraphs.Add(text);
// Save PDF document
document.Save(dataDir + "CustomizeFootNoteLabel_out.pdf");
}
}
Dans les versions de publication précédentes, le support des notes de bas de page était fourni mais il n’était applicable qu’à l’objet TextFragment. Cependant, à partir de la version Aspose.PDF for .NET 10.7.0, vous pouvez également ajouter des notes de bas de page à d’autres objets à l’intérieur du document PDF tels que Table, Cells, etc. Le code suivant montre les étapes pour ajouter une note de bas de page à l’objet TextFragment, puis ajouter une image et un objet Table à la collection de paragraphes de la section de note de bas de page.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddImageAndTable()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
var page = document.Pages.Add();
var text = new Aspose.Pdf.Text.TextFragment("some text");
page.Paragraphs.Add(text);
text.FootNote = new Aspose.Pdf.Note();
// Create image
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = dataDir + "aspose-logo.jpg";
image.FixHeight = 20;
text.FootNote.Paragraphs.Add(image);
var footNote = new Aspose.Pdf.Text.TextFragment("footnote text");
footNote.TextState.FontSize = 20;
footNote.IsInLineParagraph = true;
text.FootNote.Paragraphs.Add(footNote);
var table = new Aspose.Pdf.Table();
table.Rows.Add().Cells.Add().Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Row 1 Cell 1"));
text.FootNote.Paragraphs.Add(table);
// Save PDF document
document.Save(dataDir + "AddImageAndTable_out.pdf");
}
}
Une note de fin est une citation de source qui renvoie les lecteurs à un endroit spécifique à la fin du document où ils peuvent trouver la source des informations ou des mots cités ou mentionnés dans le document. Lors de l’utilisation de notes de fin, votre phrase citée ou paraphrasée ou le matériel résumé est suivi d’un numéro en exposant.
L’exemple suivant démontre comment ajouter une note de fin dans la page PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateEndNotes()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create TextFragment instance
var text = new Aspose.Pdf.Text.TextFragment("Hello World");
// Set FootNote value for TextFragment
text.EndNote = new Aspose.Pdf.Note("sample End note");
// Specify custom label for FootNote
text.EndNote.Text = " Aspose(2015)";
// Add TextFragment to paragraphs collection of first page of document
page.Paragraphs.Add(text);
// Save PDF document
document.Save(dataDir + "CreateEndNotes_out.pdf");
}
}
La mise en page par défaut du fichier PDF est une mise en page fluide (de haut en bas à gauche à droite). Par conséquent, chaque nouvel élément ajouté au fichier PDF est ajouté dans le flux en bas à droite. Cependant, nous pouvons avoir besoin d’afficher divers éléments de page, c’est-à-dire Image et Texte au même niveau (l’un après l’autre). Une approche peut être de créer une instance de Table et d’ajouter les deux éléments à des objets de cellule individuels. Cependant, une autre approche peut être le paragraphe en ligne. En définissant la propriété IsInLineParagraph de l’image et du texte sur true, ces paragraphes apparaîtront en ligne avec d’autres éléments de la page.
Le code suivant vous montre comment ajouter du texte et une image en tant que paragraphes en ligne dans un fichier PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void TextAndImageAsParagraph()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of Document instance
var page = document.Pages.Add();
// Create TextFragmnet
var text = new Aspose.Pdf.Text.TextFragment("Hello World.. ");
// Add text fragment to paragraphs collection of Page object
page.Paragraphs.Add(text);
// Create an image instance
var image = new Aspose.Pdf.Image();
// Set image as inline paragraph so that it appears right after
// The previous paragraph object (TextFragment)
image.IsInLineParagraph = true;
// Specify image file path
image.File = dataDir + "aspose-logo.jpg";
// Set image Height (optional)
image.FixHeight = 30;
// Set Image Width (optional)
image.FixWidth = 100;
// Add image to paragraphs collection of page object
page.Paragraphs.Add(image);
// Re-initialize TextFragment object with different contents
text = new Aspose.Pdf.Text.TextFragment(" Hello Again..");
// Set TextFragment as inline paragraph
text.IsInLineParagraph = true;
// Add newly created TextFragment to paragraphs collection of page
page.Paragraphs.Add(text);
// Save PDF document
document.Save(dataDir + "TextAndImageAsParagraph_out.pdf");
}
}
Un texte peut être ajouté à l’intérieur de la collection de paragraphes des fichiers PDF en utilisant l’instance TextFragment ou en utilisant l’objet TextParagraph et vous pouvez même tamponner le texte à l’intérieur du PDF en utilisant la classe TextStamp. Lors de l’ajout du texte, nous pouvons avoir besoin de spécifier l’espacement des caractères pour les objets de texte. Pour accomplir cette exigence, une nouvelle propriété nommée CharacterSpacing a été introduite. Veuillez consulter les approches suivantes pour satisfaire cette exigence.
Les approches suivantes montrent les étapes pour spécifier l’espacement des caractères lors de l’ajout de texte à l’intérieur d’un document PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CharacterSpacingUsingTextBuilderAndFragment()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of Document
document.Pages.Add();
// Create TextBuilder instance
var builder = new Aspose.Pdf.Text.TextBuilder(document.Pages[1]);
// Create text fragment instance with sample contents
var wideFragment = new Aspose.Pdf.Text.TextFragment("Text with increased character spacing");
wideFragment.TextState.ApplyChangesFrom(new Aspose.Pdf.Text.TextState("Arial", 12));
// Specify character spacing for TextFragment
wideFragment.TextState.CharacterSpacing = 2.0f;
// Specify the position of TextFragment
wideFragment.Position = new Aspose.Pdf.Text.Position(100, 650);
// Append TextFragment to TextBuilder instance
builder.AppendText(wideFragment);
// Save PDF document
document.Save(dataDir + "CharacterSpacingUsingTextBuilderAndFragment_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CharacterSpacingUsingTextBuilderAndParagraph()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of Document
var page = document.Pages.Add();
// Create TextBuilder instance
var builder = new Aspose.Pdf.Text.TextBuilder(page);
// Instantiate TextParagraph instance
var paragraph = new Aspose.Pdf.Text.TextParagraph();
// Create TextState instance to specify font name and size
var state = new Aspose.Pdf.Text.TextState("Arial", 12);
// Specify the character spacing
state.CharacterSpacing = 1.5f;
// Append text to TextParagraph object
paragraph.AppendLine("This is paragraph with character spacing", state);
// Specify the position for TextParagraph
paragraph.Position = new Aspose.Pdf.Text.Position(100, 550);
// Append TextParagraph to TextBuilder instance
builder.AppendParagraph(paragraph);
// Save PDF document
document.Save(dataDir + "CharacterSpacingUsingTextBuilderAndParagraph_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CharacterSpacingUsingTextStamp()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page to pages collection of Document
var page = document.Pages.Add();
// Instantiate TextStamp instance with sample text
var stamp = new Aspose.Pdf.TextStamp("This is text stamp with character spacing");
// Specify font name for Stamp object
stamp.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Arial");
// Specify Font size for TextStamp
stamp.TextState.FontSize = 12;
// Specify character specing as 1f
stamp.TextState.CharacterSpacing = 1f;
// Set the XIndent for Stamp
stamp.XIndent = 100;
// Set the YIndent for Stamp
stamp.YIndent = 500;
// Add textual stamp to page instance
stamp.Put(page);
// Save PDF document
document.Save(dataDir + "CharacterSpacingUsingTextStamp_out.pdf");
}
}
Dans les magazines et les journaux, nous voyons principalement que les nouvelles sont affichées en plusieurs colonnes sur une seule page au lieu des livres où les paragraphes de texte sont principalement imprimés sur toute la page de gauche à droite. De nombreuses applications de traitement de documents comme Microsoft Word et Adobe Acrobat Writer permettent aux utilisateurs de créer plusieurs colonnes sur une seule page et d’y ajouter des données.
Aspose.PDF for .NET offre également la fonctionnalité de créer plusieurs colonnes à l’intérieur des pages des documents PDF. Pour créer un fichier PDF à colonnes multiples, nous pouvons utiliser la classe Aspose.Pdf.FloatingBox car elle fournit la propriété ColumnInfo.ColumnCount pour spécifier le nombre de colonnes à l’intérieur de FloatingBox et nous pouvons également spécifier l’espacement entre les colonnes et les largeurs des colonnes en utilisant respectivement les propriétés ColumnInfo.ColumnSpacing et ColumnInfo.ColumnWidths. Veuillez noter que FloatingBox est un élément à l’intérieur du modèle d’objet document et peut avoir un positionnement obsolète par rapport au positionnement relatif (c’est-à-dire Texte, Graphique, Image, etc.).
L’espacement des colonnes signifie l’espace entre les colonnes et l’espacement par défaut entre les colonnes est de 1,25 cm. Si la largeur de la colonne n’est pas spécifiée, alors Aspose.PDF for .NET calcule automatiquement la largeur de chaque colonne en fonction de la taille de la page et de l’espacement des colonnes.
Un exemple est donné ci-dessous pour démontrer la création de deux colonnes avec des objets Graphiques (Ligne) et ils sont ajoutés à la collection de paragraphes de FloatingBox, qui est ensuite ajoutée à la collection de paragraphes de l’instance de Page.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateMultiColumnPdf()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Specify the left margin info for the PDF file
document.PageInfo.Margin.Left = 40;
// Specify the Right margin info for the PDF file
document.PageInfo.Margin.Right = 40;
var page = document.Pages.Add();
var graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// Add the line to paraphraphs collection of section object
page.Paragraphs.Add(graph1);
// Specify the coordinates for the line
float[] posArr = new float[] { 1, 2, 500, 2 };
var line1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(line1);
// Create string variables with text containing html tags
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";
// Create text paragraphs containing HTML text
var heading_text = new Aspose.Pdf.HtmlFragment(s);
page.Paragraphs.Add(heading_text);
var box = new Aspose.Pdf.FloatingBox();
// Add four columns in the section
box.ColumnInfo.ColumnCount = 2;
// Set the spacing between the columns
box.ColumnInfo.ColumnSpacing = "5";
box.ColumnInfo.ColumnWidths = "105 105";
var text1 = new Aspose.Pdf.Text.TextFragment("By A Googler (The Official Google Blog)");
text1.TextState.FontSize = 8;
text1.TextState.LineSpacing = 2;
box.Paragraphs.Add(text1);
text1.TextState.FontSize = 10;
text1.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Italic;
// Create a graphs object to draw a line
var graph2 = new Aspose.Pdf.Drawing.Graph(50, 10);
// Specify the coordinates for the line
float[] posArr2 = new float[] { 1, 10, 100, 10 };
var line2 = new Aspose.Pdf.Drawing.Line(posArr2);
graph2.Shapes.Add(line2);
// Add the line to paragraphs collection of section object
box.Paragraphs.Add(graph2);
var text2 = new Aspose.Pdf.Text.TextFragment(@"Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.");
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);
// Save PDF document
document.Save(dataDir + "CreateMultiColumnPdf_out.pdf");
}
}
Un point d’arrêt de tabulation est un point d’arrêt pour le tabulation. Dans le traitement de texte, chaque ligne contient un certain nombre de points d’arrêt de tabulation placés à intervalles réguliers (par exemple, tous les demi-pouces). Ils peuvent être modifiés, cependant, car la plupart des traitements de texte vous permettent de définir des points d’arrêt de tabulation où vous le souhaitez. Lorsque vous appuyez sur la touche Tab, le curseur ou le point d’insertion saute au point d’arrêt de tabulation suivant, qui lui-même est invisible. Bien que les points d’arrêt de tabulation n’existent pas dans le fichier texte, le traitement de texte les suit afin de pouvoir réagir correctement à la touche Tab.
Aspose.PDF for .NET permet aux développeurs d’utiliser des points d’arrêt de tabulation personnalisés dans les documents PDF. La classe Aspose.Pdf.Text.TabStop est utilisée pour définir des points d’arrêt de tabulation personnalisés dans la classe TextFragment.
Aspose.PDF for .NET offre également certains types de leaders de tabulation prédéfinis sous forme d’énumération nommée TabLeaderType dont les valeurs prédéfinies et leurs descriptions sont données ci-dessous :
Type de leader de tabulation | Description |
---|---|
Aucun | Pas de leader de tabulation |
Solide | Leader de tabulation solide |
Tiret | Leader de tabulation en tiret |
Point | Leader de tabulation en point |
Voici un exemple de la façon de définir des points d’arrêt de tabulation personnalisés.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CustomTabStops()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
var page = document.Pages.Add();
var tabStops = new Aspose.Pdf.Text.TabStops();
var tabStop1 = tabStops.Add(100);
tabStop1.AlignmentType = Aspose.Pdf.Text.TabAlignmentType.Right;
tabStop1.LeaderType = Aspose.Pdf.Text.TabLeaderType.Solid;
var tabStop2 = tabStops.Add(200);
tabStop2.AlignmentType = Aspose.Pdf.Text.TabAlignmentType.Center;
tabStop2.LeaderType = Aspose.Pdf.Text.TabLeaderType.Dash;
var tabStop3 = tabStops.Add(300);
tabStop3.AlignmentType = Aspose.Pdf.Text.TabAlignmentType.Left;
tabStop3.LeaderType = Aspose.Pdf.Text.TabLeaderType.Dot;
var header = new Aspose.Pdf.Text.TextFragment("This is a example of forming table with TAB stops", tabStops);
var text0 = new Aspose.Pdf.Text.TextFragment("#$TABHead1 #$TABHead2 #$TABHead3", tabStops);
var text1 = new Aspose.Pdf.Text.TextFragment("#$TABdata11 #$TABdata12 #$TABdata13", tabStops);
var text2 = new Aspose.Pdf.Text.TextFragment("#$TABdata21 ", tabStops);
text2.Segments.Add(new Aspose.Pdf.Text.TextSegment("#$TAB"));
text2.Segments.Add(new Aspose.Pdf.Text.TextSegment("data22 "));
text2.Segments.Add(new Aspose.Pdf.Text.TextSegment("#$TAB"));
text2.Segments.Add(new Aspose.Pdf.Text.TextSegment("data23"));
// Add text fragments to page
page.Paragraphs.Add(header);
page.Paragraphs.Add(text0);
page.Paragraphs.Add(text1);
page.Paragraphs.Add(text2);
// Save PDF document
document.Save(dataDir + "CustomTabStops_out.pdf");
}
}
Un fichier PDF contient des objets Image, Texte, Graphique, pièces jointes, Annotations et lors de la création de TextFragment, vous pouvez définir des informations de couleur de premier plan, de couleur de fond ainsi que le formatage du texte. Aspose.PDF for .NET prend en charge la fonctionnalité d’ajouter du texte avec un canal de couleur Alpha. Le code suivant montre comment ajouter du texte avec une couleur transparente.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTransparentText()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Create page to pages collection of PDF file
var page = document.Pages.Add();
// Create Graph object
var canvas = new Aspose.Pdf.Drawing.Graph(100, 400);
// Create rectangle instance with certain dimensions
var rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);
// Create color object from Alpha color channel
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));
// Add rectanlge to shapes collection of Graph object
canvas.Shapes.Add(rect);
// Add graph object to paragraphs collection of page object
page.Paragraphs.Add(canvas);
// Set value to not change position for graph object
canvas.IsChangePosition = false;
// Create TextFragment instance with sample value
var text = new Aspose.Pdf.Text.TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");
// Create color object from Alpha channel
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);
// Set color information for text instance
text.TextState.ForegroundColor = color;
// Add text to paragraphs collection of page instance
page.Paragraphs.Add(text);
// Save PDF document
document.Save(dataDir + "AddTransparentText_out.pdf");
}
}
Chaque police a un carré abstrait, dont la hauteur est la distance prévue entre les lignes de texte de la même taille de police. Ce carré est appelé le carré em et c’est la grille de conception sur laquelle les contours des glyphes sont définis. De nombreuses lettres de la police d’entrée ont des points qui sont placés en dehors des limites du carré em de la police, donc pour afficher correctement la police, l’utilisation d’un réglage spécial est nécessaire. L’objet TextFragment a un ensemble d’options de formatage de texte qui sont accessibles via les propriétés TextState.FormattingOptions. La dernière propriété de ce chemin est une propriété de type Aspose.Pdf.Text.TextFormattingOptions. Cette classe a une énumération LineSpacingMode qui est conçue pour des polices spécifiques, par exemple la police d’entrée “HPSimplified.ttf”. De plus, la classe Aspose.Pdf.Text.TextFormattingOptions a une propriété LineSpacing de type LineSpacingMode. Vous devez simplement définir LineSpacing sur LineSpacingMode.FullSize. L’extrait de code pour obtenir une police affichée correctement serait comme suit :
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SpecifyLineSpacing()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
string fontFile = dataDir + "HPSimplified.TTF";
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
//Create TextFormattingOptions with LineSpacingMode.FullSize
var formattingOptions = new Aspose.Pdf.Text.TextFormattingOptions();
formattingOptions.LineSpacing = Aspose.Pdf.Text.TextFormattingOptions.LineSpacingMode.FullSize;
// Create text builder object for first page of document
//TextBuilder textBuilder = new TextBuilder(document.Pages[1]);
// Create text fragment with sample string
var textFragment = new Aspose.Pdf.Text.TextFragment("Hello world");
if (fontFile != "")
{
// Load the TrueType font into stream object
using (FileStream fontStream = File.OpenRead(fontFile))
{
// Set the font name for text string
textFragment.TextState.Font = Aspose.Pdf.Text.FontRepository.OpenFont(fontStream, Aspose.Pdf.Text.FontTypes.TTF);
// Specify the position for Text Fragment
textFragment.Position = new Aspose.Pdf.Text.Position(100, 600);
//Set TextFormattingOptions of current fragment to predefined(which points to LineSpacingMode.FullSize)
textFragment.TextState.FormattingOptions = formattingOptions;
// Add the text to TextBuilder so that it can be placed over the PDF file
//textBuilder.AppendText(textFragment);
var page = document.Pages.Add();
page.Paragraphs.Add(textFragment);
}
// Save PDF document
document.Save(dataDir + "SpecifyLineSpacing_out.pdf");
}
}
}
Parfois, il est nécessaire d’obtenir la largeur du texte dynamiquement. Aspose.PDF for .NET inclut deux méthodes pour mesurer la largeur des chaînes. Vous pouvez invoquer la méthode MeasureString de la classe Aspose.Pdf.Text.Font ou Aspose.Pdf.Text.TextState (ou les deux). L’extrait 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 GetTextWidthDynamically()
{
var font = Aspose.Pdf.Text.FontRepository.FindFont("Arial");
var textState = new Aspose.Pdf.Text.TextState();
textState.Font = font;
textState.FontSize = 14;
if (Math.Abs(font.MeasureString("A", 14) - 9.337) > 0.001)
{
Console.WriteLine("Unexpected font string measure!");
}
if (Math.Abs(textState.MeasureString("z") - 7.0) > 0.001)
{
Console.WriteLine("Unexpected font string measure!");
}
for (char c = 'A'; c <= 'z'; c++)
{
double fontMeasure = font.MeasureString(c.ToString(), 14);
double textStateMeasure = textState.MeasureString(c.ToString());
if (Math.Abs(fontMeasure - textStateMeasure) > 0.001)
{
Console.WriteLine("Font and state string measuring doesn't match!");
}
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.