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.
Uma Anotação de Texto é uma anotação anexada a um local específico em um documento PDF. Quando fechada, a anotação é exibida como um ícone; quando aberta, deve exibir uma janela pop-up contendo o texto da nota na fonte e tamanho escolhidos pelo leitor.
As anotações são contidas pela coleção Annotations de uma Página específica. Esta coleção contém as anotações apenas para aquela página individual; cada página tem sua própria coleção de Anotações.
Para adicionar uma anotação a uma página específica, adicione-a à coleção de Anotações daquela página com o método Add.
O seguinte trecho de código mostra como adicionar uma anotação em uma página PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTextAnnotationToPdf()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "AddAnnotation.pdf"))
{
// Create text annotation
var textAnnotation = new Aspose.Pdf.Annotations.TextAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(200, 400, 400, 600));
textAnnotation.Title = "Sample Annotation Title";
textAnnotation.Subject = "Sample Subject";
textAnnotation.SetReviewState(Aspose.Pdf.Annotations.AnnotationState.Accepted);
textAnnotation.Contents = "Sample contents for the annotation";
textAnnotation.Open = true;
textAnnotation.Icon = Aspose.Pdf.Annotations.TextIcon.Key;
// Set border for the annotation
var border = new Aspose.Pdf.Annotations.Border(textAnnotation);
border.Width = 5;
border.Dash = new Aspose.Pdf.Annotations.Dash(1, 1);
textAnnotation.Border = border;
textAnnotation.Rect = new Aspose.Pdf.Rectangle(200, 400, 400, 600);
// Add annotation to the annotations collection of the page
document.Pages[1].Annotations.Add(textAnnotation);
// Save PDF document
document.Save(dataDir + "AddAnnotation_out.pdf");
}
}
Uma Anotação Pop-up exibe texto em uma janela pop-up para entrada e edição. Ela não deve aparecer sozinha, mas está associada a uma anotação de marcação, sua anotação pai, e deve ser usada para editar o texto do pai.
Ela não deve ter um fluxo de aparência ou ações associadas próprias e deve ser identificada pela entrada Popup no dicionário de anotações do pai.
O seguinte trecho de código mostra como adicionar Anotação Pop-up em uma página PDF usando um exemplo de adição de uma anotação de Linha pai.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddLineAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Appartments.pdf"))
{
// Create Line Annotation
var lineAnnotation = new Aspose.Pdf.Annotations.LineAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(550, 93, 562, 439),
new Aspose.Pdf.Point(556, 99), new Aspose.Pdf.Point(556, 443))
{
Title = "John Smith",
Color = Aspose.Pdf.Color.Red,
Width = 3,
StartingStyle = Aspose.Pdf.Annotations.LineEnding.OpenArrow,
EndingStyle = Aspose.Pdf.Annotations.LineEnding.OpenArrow,
Popup = new Aspose.Pdf.Annotations.PopupAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(842, 124, 1021, 266))
};
// Add annotation to the page
document.Pages[1].Annotations.Add(lineAnnotation);
// Save PDF document
document.Save(dataDir + "AddLineAnnotation_out.pdf");
}
}
Uma anotação de texto livre exibe texto diretamente na página. O método PdfContentEditor.CreateFreeText permite criar esse tipo de anotação. No seguinte trecho, adicionamos uma anotação de texto livre acima da primeira ocorrência da string.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddFreeTextAnnotationDemo()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "pdf-sample.pdf"))
{
var pdfContentEditor = new Aspose.Pdf.Facades.PdfContentEditor(document);
// Assuming tfa is an instance of TextFragmentAbsorber or similar
var tfa = new Aspose.Pdf.Text.TextFragmentAbsorber();
tfa.Visit(document.Pages[1]);
if (tfa.TextFragments.Count <= 0)
{
return;
}
// Define the rectangle for the free text annotation
var rect = new System.Drawing.Rectangle
{
X = (int)tfa.TextFragments[1].Rectangle.LLX,
Y = (int)tfa.TextFragments[1].Rectangle.URY + 5,
Height = 18,
Width = 100
};
// Create free text annotation
pdfContentEditor.CreateFreeText(rect, "Free Text Demo", 1); // Last param is the page number
// Save PDF document
pdfContentEditor.Save(dataDir + "pdf-sample-0.pdf");
}
}
Para uma configuração mais flexível da anotação no documento PDF, Aspose.PDF for .NET fornece a propriedade Callout da classe FreeTextAnnotation que permite especificar um Array de pontos da linha de chamada. O seguinte trecho de código mostra como usar essa funcionalidade:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddFreeTextCalloutAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Create default appearance for the annotation
var da = new Aspose.Pdf.Annotations.DefaultAppearance();
da.TextColor = System.Drawing.Color.Red;
da.FontSize = 10;
// Create free text annotation with callout
var fta = new Aspose.Pdf.Annotations.FreeTextAnnotation(page, new Aspose.Pdf.Rectangle(422.25, 645.75, 583.5, 702.75), da);
fta.Intent = Aspose.Pdf.Annotations.FreeTextIntent.FreeTextCallout;
fta.EndingStyle = Aspose.Pdf.Annotations.LineEnding.OpenArrow;
fta.Callout = new Aspose.Pdf.Point[]
{
new Aspose.Pdf.Point(428.25, 651.75),
new Aspose.Pdf.Point(462.75, 681.375),
new Aspose.Pdf.Point(474, 681.375)
};
// Add the annotation to the page
page.Annotations.Add(fta);
// Set rich text for the annotation
fta.RichText = "<body xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\" xfa:APIVersion=\"Acrobat:11.0.23\" xfa:spec=\"2.0.2\" style=\"color:#FF0000;font-weight:normal;font-style:normal;font-stretch:normal\"><p dir=\"ltr\"><span style=\"font-size:9.0pt;font-family:Helvetica\">This is a sample</span></p></body>";
// Save PDF document
document.Save(dataDir + "SetCalloutProperty_out.pdf");
}
}
Se você usar a importação de um arquivo XFDF, use o nome da linha de chamada em vez de apenas Callout. O seguinte trecho de código mostra como usar essa funcionalidade:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportAnnotationsFromXfdf()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "AddAnnotation.pdf"))
{
// Create an XFDF string builder
var xfdf = new StringBuilder();
xfdf.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?><xfdf xmlns=\"http://ns.adobe.com/xfdf/\" xml:space=\"preserve\"><annots>");
// Call the method to create XFDF content
CreateXfdf(ref xfdf);
xfdf.AppendLine("</annots></xfdf>");
// Import annotations from the XFDF string
document.ImportAnnotationsFromXfdf(new MemoryStream(Encoding.UTF8.GetBytes(xfdf.ToString())));
// Save PDF document
document.Save(dataDir + "SetCalloutPropertyXfdf_out.pdf");
}
}
O seguinte método está sendo usado para CreateXfdf:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateXfdf(ref StringBuilder pXfdf)
{
pXfdf.Append("<freetext");
pXfdf.Append(" page=\"0\"");
pXfdf.Append(" rect=\"422.25,645.75,583.5,702.75\"");
pXfdf.Append(" intent=\"FreeTextCallout\"");
pXfdf.Append(" callout-line=\"428.25,651.75,462.75,681.375,474,681.375\"");
pXfdf.Append(" tail=\"OpenArrow\"");
pXfdf.AppendLine(">");
pXfdf.Append("<contents-richtext><body ");
pXfdf.Append(" style=\"font-size:10.0pt;text-align:left;color:#FF0000;font-weight:normal;font-style:normal;font-family:Helvetica;font-stretch:normal\">");
pXfdf.Append("<p dir=\"ltr\">This is a sample</p>");
pXfdf.Append("</body></contents-richtext>");
pXfdf.AppendLine("<defaultappearance>/Helv 12 Tf 1 0 0 rg</defaultappearance>");
pXfdf.AppendLine("</freetext>");
}
Às vezes, é necessário criar uma marca d’água que não seja visível no documento ao visualizá-lo, mas que deve ser visível quando o documento é impresso. Use as flags de anotação para esse propósito. O seguinte trecho de código mostra como.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddInvisibleAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Create a free text annotation
var annotation = new Aspose.Pdf.Annotations.FreeTextAnnotation(
document.Pages[1],
new Aspose.Pdf.Rectangle(50, 600, 250, 650),
new Aspose.Pdf.Annotations.DefaultAppearance("Helvetica", 16, System.Drawing.Color.Red)
);
annotation.Contents = "ABCDEFG";
annotation.Characteristics.Border = System.Drawing.Color.Red;
annotation.Flags = Aspose.Pdf.Annotations.AnnotationFlags.Print | Aspose.Pdf.Annotations.AnnotationFlags.NoView;
// Add the annotation to the page
document.Pages[1].Annotations.Add(annotation);
// Save PDF document
document.Save(dataDir + "InvisibleAnnotation_out.pdf");
}
}
Esta parte analisa como formatar o texto em uma anotação de texto livre.
As anotações são contidas na coleção AnnotationCollection do objeto Page. Ao adicionar uma FreeTextAnnotation a um documento PDF, você pode especificar as informações de formatação, como fonte, tamanho, cor e assim por diante, usando a classe DefaultAppearance. Também é possível especificar as informações de formatação usando a propriedade TextStyle. Além disso, você pode atualizar a formatação de qualquer FreeTextAnnotation já no documento PDF.
A classe TextStyle suporta o trabalho com a entrada de estilo padrão. Esta classe permite que você defina cor, tamanho da fonte e nome da fonte:
O seguinte trecho de código mostra como adicionar uma FreeTextAnnotation com formatação de texto específica.
Aspose.PDF for .NET permite que você adicione, exclua e atualize anotações em documentos PDF. Uma das classes permite que você riscar anotações também. Isso é útil quando você deseja riscar um ou mais fragmentos de texto em um documento. As anotações são mantidas na coleção AnnotationCollection do objeto Page. Uma classe chamada StrikeOutAnnotation pode ser usada para adicionar anotações de riscar a um documento PDF.
Para riscar um determinado TextFragment:
O seguinte trecho de código mostra como pesquisar um TextFragment específico e adicionar uma StrikeOutAnnotation a esse objeto.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private void StrikeOutTextInDocument()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "pdf-sample.pdf"))
{
// Create TextFragment Absorber instance to search for a particular text fragment
var textFragmentAbsorber = new Aspose.Pdf.Text.TextFragmentAbsorber("Estoque");
// Iterate through pages of PDF document
foreach (var page in document.Pages)
{
// Accept the absorber for the current page
page.Accept(textFragmentAbsorber);
}
// Get the collection of absorbed text fragments
var textFragmentCollection = textFragmentAbsorber.TextFragments;
// Iterate through the collection of text fragments
foreach (Aspose.Pdf.Text.TextFragment textFragment in textFragmentCollection)
{
// Get rectangular dimensions of the TextFragment object
var rect = new Aspose.Pdf.Rectangle(
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Position.XIndent + (float)textFragment.Rectangle.Width,
(float)textFragment.Position.YIndent + (float)textFragment.Rectangle.Height);
// Instantiate StrikeOut Annotation instance
var strikeOut = new Aspose.Pdf.Annotations.StrikeOutAnnotation(textFragment.Page, rect)
{
// Set opacity for annotation
Opacity = 0.80f,
// Set the color of annotation
Color = Aspose.Pdf.Color.Red
};
// Set the border for annotation instance
strikeOut.Border = new Aspose.Pdf.Annotations.Border(strikeOut);
// Add annotation to the annotations collection of the TextFragment's page
textFragment.Page.Annotations.Add(strikeOut);
}
// Save PDF document
document.Save(dataDir + "StrikeOutWords_out.pdf");
}
}
A coleção AnnotationCollection do objeto Page contém todas as anotações para aquela página específica. Para excluir todas as anotações de uma página, chame o método Delete da coleção AnnotationCollectoin.
O seguinte trecho de código mostra como excluir todas as anotações de uma página específica.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteAllAnnotationsFromPage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DeleteAllAnnotationsFromPage.pdf"))
{
// Delete all annotations from the first page
document.Pages[1].Annotations.Delete();
// Save PDF document
document.Save(dataDir + "DeleteAllAnnotationsFromPage_out.pdf");
}
}
Aspose.PDF permite que você remova uma Anotação particular do arquivo PDF. Este tópico explica como.
Para excluir uma anotação particular de um PDF, chame o método Delete da coleção AnnotationCollection. Esta coleção pertence ao objeto Page. O método Delete requer o índice da anotação que você deseja excluir. Em seguida, salve o arquivo PDF atualizado. O seguinte trecho de código mostra como excluir uma anotação particular.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeleteParticularAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DeleteParticularAnnotation.pdf"))
{
// Delete a particular annotation by index (e.g., the first annotation on the first page)
document.Pages[1].Annotations.Delete(1);
// Save PDF document
document.Save(dataDir + "DeleteParticularAnnotation_out.pdf");
}
}
Aspose.PDF permite que você obtenha anotações de um documento inteiro ou de uma página específica. Para obter todas as anotações da página em um documento PDF, percorra a coleção AnnotationCollection dos recursos da página desejada. O seguinte trecho de código mostra como obter todas as anotações de uma página.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetAllAnnotationsFromPage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "GetAllAnnotationsFromPage.pdf"))
{
// Loop through all the annotations on the first page
foreach (Aspose.Pdf.Annotations.MarkupAnnotation annotation in document.Pages[1].Annotations)
{
// Get annotation properties
Console.WriteLine("Title : {0} ", annotation.Title);
Console.WriteLine("Subject : {0} ", annotation.Subject);
Console.WriteLine("Contents : {0} ", annotation.Contents);
}
}
}
Observe que, para obter todas as anotações do PDF inteiro, você deve percorrer a coleção da classe PageCollection do documento antes de navegar pela coleção da classe AnnotationCollection. Você pode obter cada anotação da coleção em um tipo de anotação base chamado MarkupAnnotation Class e, em seguida, mostrar suas propriedades.
As anotações estão associadas a páginas individuais e armazenadas na coleção AnnotationCollection do objeto Page. Para obter uma anotação particular, especifique seu índice. Isso retorna um objeto Annotation que precisa ser convertido para um tipo de anotação específico, por exemplo, TextAnnotation. O seguinte trecho de código mostra como obter uma anotação particular e suas propriedades.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetParticularAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "GetParticularAnnotation.pdf"))
{
// Get a particular annotation by index (e.g., the first annotation on the first page)
var textAnnotation = (Aspose.Pdf.Annotations.TextAnnotation)document.Pages[1].Annotations[1];
// Get annotation properties
Console.WriteLine("Title : {0} ", textAnnotation.Title);
Console.WriteLine("Subject : {0} ", textAnnotation.Subject);
Console.WriteLine("Contents : {0} ", textAnnotation.Contents);
}
}
Aspose.PDF permite que você obtenha um recurso de anotação de um documento inteiro ou de uma página específica. O seguinte trecho de código mostra como obter o recurso da anotação como um objeto FileSpecification do arquivo PDF de entrada.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddAndGetResourceOfAnnotation()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Annotations();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "AddAnnotation.pdf"))
{
// Create a screen annotation with a SWF file
var sa = new Aspose.Pdf.Annotations.ScreenAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 400, 300, 600), dataDir + "AddSwfFileAsAnnotation.swf");
document.Pages[1].Annotations.Add(sa);
// Save PDF document with the new annotation
document.Save(dataDir + "GetResourceOfAnnotation_out.pdf");
// Open the updated document
var document1 = new Aspose.Pdf.Document(dataDir + "GetResourceOfAnnotation_Out.pdf");
// Get the action of the annotation
var action = (document1.Pages[1].Annotations[1] as Aspose.Pdf.Annotations.ScreenAnnotation).Action as Aspose.Pdf.Annotations.RenditionAction;
// Get the rendition of the rendition action
var rendition = action.Rendition;
// Get the media clip
var clip = (rendition as Aspose.Pdf.Annotations.MediaRendition).MediaClip;
var data = (clip as Aspose.Pdf.Annotations.MediaClipData).Data;
// Read the media data
using (var ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int read = 0;
// Data of media are accessible in FileSpecification.Contents
using (var source = data.Contents)
{
while ((read = source.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
}
Console.WriteLine(rendition.Name);
Console.WriteLine(action.RenditionOperation);
}
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.