Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.
Para adicionar texto a um arquivo PDF existente:
O seguinte trecho de código mostra como adicionar texto em um arquivo PDF existente.
// 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");
}
}
O seguinte trecho de código mostra como carregar Fonte de um objeto Stream ao adicionar texto ao documento 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");
}
}
}
O seguinte trecho de código mostra como adicionar texto no documento PDF usando a 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");
}
}
Uma página PDF pode conter um ou mais objetos TextFragment, onde cada objeto TextFragment pode ter uma ou mais instâncias de TextSegment. Para definir um hyperlink para TextSegment, a propriedade Hyperlink da classe TextSegment pode ser usada, fornecendo o objeto da instância Aspose.Pdf.WebHyperlink. Por favor, tente usar o seguinte trecho de código para atender a esse requisito.
// 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 oferece o recurso de usar fontes Custom/TrueType ao criar/manipular conteúdos de arquivos PDF, para que os conteúdos do arquivo sejam exibidos usando conteúdos diferentes das fontes padrão do sistema. A partir do lançamento da versão Aspose.PDF for .NET 10.3.0, fornecemos suporte para Fontes 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");
}
}
A classe Aspose.Pdf.Generator.Text contém uma propriedade chamada IsHtmlTagSupported que torna possível adicionar tags/conteúdos HTML em arquivos PDF. O conteúdo adicionado é renderizado em tags HTML nativas em vez de aparecer como uma simples string de texto. Para suportar um recurso semelhante no novo Modelo de Objeto de Documento (DOM) do namespace Aspose.Pdf, a classe HtmlFragment foi introduzida.
A instância HtmlFragment pode ser usada para especificar os conteúdos HTML que devem ser colocados dentro do arquivo PDF. Semelhante ao TextFragment, HtmlFragment é um objeto de nível de parágrafo e pode ser adicionado à coleção de parágrafos do objeto Page. Os seguintes trechos de código mostram os passos para colocar conteúdos HTML dentro do arquivo PDF usando a abordagem 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");
}
}
O seguinte trecho de código demonstra os passos de como adicionar listas ordenadas HTML ao documento:
// 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");
}
}
Você também pode definir a formatação da string HTML usando o objeto TextState da seguinte forma:
// 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");
}
}
Caso você defina alguns valores de atributos de texto via marcação HTML e depois forneça os mesmos valores nas propriedades TextState, eles substituirão os parâmetros HTML pelas propriedades do objeto TextState. Os seguintes trechos de código mostram o comportamento descrito.
// 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");
}
}
Notas de Rodapé indicam notas no texto do seu documento usando números sobrescritos consecutivos. A nota real é recuada e pode ocorrer como uma nota de rodapé na parte inferior da página.
Em um sistema de referência de nota de rodapé, indique uma referência por:
A vantagem da numeração de notas de rodapé é que o leitor pode simplesmente olhar para baixo na página para descobrir a fonte de uma referência que lhe interessa.
Por favor, siga os passos especificados abaixo para criar uma Nota de Rodapé:
O seguinte exemplo demonstra como adicionar Notas de Rodapé à parte inferior da página PDF e definir um estilo de linha personalizado.
// 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");
}
}
Podemos definir a formatação do rótulo da Nota de Rodapé (identificador de nota) usando o objeto TextState da seguinte forma:
// 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;
}
Por padrão, o número da Nota de Rodapé é incremental, começando de 1. No entanto, podemos ter a necessidade de definir um rótulo de Nota de Rodapé personalizado. Para atender a esse requisito, por favor, tente usar o seguinte trecho de código.
// 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");
}
}
Em versões anteriores, o suporte a Notas de Rodapé foi fornecido, mas era aplicável apenas ao objeto TextFragment. No entanto, a partir do lançamento da versão Aspose.PDF for .NET 10.7.0, você também pode adicionar Notas de Rodapé a outros objetos dentro do documento PDF, como Tabela, Células, etc. O seguinte trecho de código mostra os passos para adicionar uma Nota de Rodapé ao objeto TextFragment e, em seguida, adicionar um objeto Imagem e Tabela à coleção de parágrafos da seção de Nota de Rodapé.
// 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");
}
}
Uma Nota Final é uma citação de fonte que refere os leitores a um lugar específico no final do documento onde eles podem descobrir a fonte das informações ou palavras citadas ou mencionadas no documento. Ao usar notas finais, sua frase citada ou parafraseada ou material resumido é seguido por um número sobrescrito.
O seguinte exemplo demonstra como adicionar uma Nota Final na página 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");
}
}
O layout padrão do arquivo PDF é o layout de fluxo (Canto Superior Esquerdo para Canto Inferior Direito). Portanto, cada novo elemento adicionado ao arquivo PDF é adicionado no fluxo inferior direito. No entanto, podemos ter a necessidade de exibir vários elementos da página, ou seja, Imagem e Texto no mesmo nível (um após o outro). Uma abordagem pode ser criar uma instância de Tabela e adicionar ambos os elementos a objetos de célula individuais. No entanto, outra abordagem pode ser o parágrafo Inline. Definindo a propriedade IsInLineParagraph da Imagem e do Texto como verdadeira, esses parágrafos aparecerão como inline em relação a outros elementos da página.
O seguinte trecho de código mostra como adicionar texto e Imagem como parágrafos Inline no arquivo 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");
}
}
Um texto pode ser adicionado dentro da coleção de parágrafos de arquivos PDF usando a instância TextFragment ou usando o objeto TextParagraph e você pode até carimbar o texto dentro do PDF usando a classe TextStamp. Ao adicionar o texto, podemos ter a necessidade de especificar o espaçamento de caracteres para os objetos de texto. Para atender a esse requisito, uma nova propriedade chamada CharacterSpacing foi introduzida. Por favor, veja as seguintes abordagens para cumprir esse requisito.
As seguintes abordagens mostram os passos para especificar o espaçamento de caracteres ao adicionar texto dentro de um documento 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");
}
}
Em revistas e jornais, vemos principalmente que as notícias são exibidas em várias colunas em uma única página, ao contrário dos livros, onde os parágrafos de texto são impressos na página inteira da esquerda para a direita. Muitos aplicativos de processamento de documentos, como Microsoft Word e Adobe Acrobat Writer, permitem que os usuários criem várias colunas em uma única página e, em seguida, adicionem dados a elas.
Aspose.PDF for .NET também oferece o recurso de criar várias colunas dentro das páginas de documentos PDF. Para criar um arquivo PDF de múltiplas colunas, podemos usar a classe Aspose.Pdf.FloatingBox, pois ela fornece a propriedade ColumnInfo.ColumnCount para especificar o número de colunas dentro do FloatingBox e também podemos especificar o espaçamento entre colunas e larguras das colunas usando as propriedades ColumnInfo.ColumnSpacing e ColumnInfo.ColumnWidths, respectivamente. Por favor, note que o FloatingBox é um elemento dentro do Modelo de Objeto de Documento e pode ter posicionamento obsoleto em comparação com o posicionamento relativo (ou seja, Texto, Gráfico, Imagem, etc).
O espaçamento entre colunas significa o espaço entre as colunas e o espaçamento padrão entre as colunas é de 1,25 cm. Se a largura da coluna não for especificada, então Aspose.PDF for .NET calcula automaticamente a largura de cada coluna de acordo com o tamanho da página e o espaçamento entre colunas.
Um exemplo é dado abaixo para demonstrar a criação de duas colunas com objetos Gráficos (Linha) e que são adicionados à coleção de parágrafos do FloatingBox, que é então adicionada à coleção de parágrafos da instância de Página.
// 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");
}
}
Um Tab Stop é um ponto de parada para tabulação. No processamento de texto, cada linha contém um número de paradas de tabulação colocadas em intervalos regulares (por exemplo, a cada meia polegada). No entanto, eles podem ser alterados, pois a maioria dos processadores de texto permite que você defina paradas de tabulação onde quiser. Quando você pressiona a tecla Tab, o cursor ou ponto de inserção salta para a próxima parada de tabulação, que em si é invisível. Embora as paradas de tabulação não existam no arquivo de texto, o processador de texto as rastreia para que possa reagir corretamente à tecla Tab.
Aspose.PDF for .NET permite que os desenvolvedores usem paradas de tabulação personalizadas em documentos PDF. A classe Aspose.Pdf.Text.TabStop é usada para definir paradas de TAB personalizadas na classe TextFragment.
Aspose.PDF for .NET também oferece alguns tipos de líderes de tabulação pré-definidos como uma enumeração chamada TabLeaderType, cujos valores pré-definidos e suas descrições são dados abaixo:
Tipo de Líder de Tabulação | Descrição |
---|---|
Nenhum | Sem líder de tabulação |
Sólido | Líder de tabulação sólido |
Traço | Líder de tabulação em traço |
Ponto | Líder de tabulação em ponto |
Aqui está um exemplo de como definir paradas de TAB personalizadas.
// 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");
}
}
Um arquivo PDF contém objetos de Imagem, Texto, Gráfico, anexo, Anotações e ao criar um TextFragment, você pode definir informações de cor de primeiro plano, fundo, bem como formatação de texto. Aspose.PDF for .NET suporta o recurso de adicionar texto com canal de cor Alpha. O seguinte trecho de código mostra como adicionar texto com cor 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");
}
}
Cada fonte tem um quadrado abstrato, cuja altura é a distância pretendida entre linhas de tipo no mesmo tamanho de tipo. Esse quadrado é chamado de quadrado em e é a grade de design na qual os contornos dos glifos são definidos. Muitas letras da fonte de entrada têm pontos que estão fora dos limites do quadrado em da fonte, então, para exibir a fonte corretamente, é necessário o uso de uma configuração especial. O objeto TextFragment tem um conjunto de opções de formatação de texto que são acessíveis através das propriedades TextState.FormattingOptions. A última propriedade desse caminho é uma propriedade do tipo Aspose.Pdf.Text.TextFormattingOptions. Esta classe tem uma enumeração LineSpacingMode que é projetada para fontes específicas, por exemplo, a fonte de entrada “HPSimplified.ttf”. Além disso, a classe Aspose.Pdf.Text.TextFormattingOptions tem uma propriedade LineSpacing do tipo LineSpacingMode. Você só precisa definir LineSpacing como LineSpacingMode.FullSize. O trecho de código para exibir uma fonte corretamente seria como segue:
// 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");
}
}
}
Às vezes, é necessário obter a largura do texto dinamicamente. Aspose.PDF for .NET inclui dois métodos para medição de largura de string. Você pode invocar o método MeasureString da classe Aspose.Pdf.Text.Font ou Aspose.Pdf.Text.TextState (ou ambos). O trecho de código abaixo mostra como usar essa funcionalidade.
// 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.