Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
以下代码片段也适用于 Aspose.PDF.Drawing 库。
通常需要为 PDF 文档中的短语或特定单词添加一些详细信息作为工具提示,以便在用户将鼠标光标悬停在文本上时弹出。Aspose.PDF for .NET 提供此功能,通过在搜索文本上添加隐形按钮来创建工具提示。以下代码片段将向您展示如何实现此功能:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTooltipToSearchedText()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
document.Pages.Add().Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Move the mouse cursor here to display a tooltip"));
document.Pages[1].Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Move the mouse cursor here to display a very long tooltip"));
// Save PDF document
document.Save(dataDir + "Tooltip_out.pdf");
}
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "Tooltip_out.pdf"))
{
// Create TextAbsorber object to find all the phrases matching the regular expression
var absorber = new Aspose.Pdf.Text.TextFragmentAbsorber("Move the mouse cursor here to display a tooltip");
// Accept the absorber for the document pages
document.Pages.Accept(absorber);
// Get the extracted text fragments
var textFragments = absorber.TextFragments;
// Loop through the fragments
foreach (var fragment in textFragments)
{
// Create invisible button on text fragment position
var field = new Aspose.Pdf.Forms.ButtonField(fragment.Page, fragment.Rectangle);
// AlternateName value will be displayed as tooltip by a viewer application
field.AlternateName = "Tooltip for text.";
// Add button field to the document
document.Form.Add(field);
}
absorber = new Aspose.Pdf.Text.TextFragmentAbsorber("Move the mouse cursor here to display a very long tooltip");
document.Pages.Accept(absorber);
textFragments = absorber.TextFragments;
foreach (var fragment in textFragments)
{
var field = new Aspose.Pdf.Forms.ButtonField(fragment.Page, fragment.Rectangle);
// Set very long text
field.AlternateName = "Lorem ipsum dolor sit amet, consectetur adipiscing elit," +
" sed do eiusmod tempor incididunt ut labore et dolore magna" +
" aliqua. Ut enim ad minim veniam, quis nostrud exercitation" +
" ullamco laboris nisi ut aliquip ex ea commodo consequat." +
" Duis aute irure dolor in reprehenderit in voluptate velit" +
" esse cillum dolore eu fugiat nulla pariatur. Excepteur sint" +
" occaecat cupidatat non proident, sunt in culpa qui officia" +
" deserunt mollit anim id est laborum.";
document.Form.Add(field);
}
// Save PDF document
document.Save(dataDir + "Tooltip_out.pdf");
}
}
在 Aspose.PDF 中,隐藏操作的功能实现了在某些隐形按钮上鼠标进入/退出时显示/隐藏文本框字段(或任何其他类型的注释)。为此,使用 Aspose.Pdf.Annotations.HideAction 类将隐藏/显示的操作分配给文本块。请使用以下代码片段在鼠标进入/退出时显示/隐藏文本块。
请注意,文档中的 PDF 操作在符合标准的阅读器(例如 Adobe Reader)中运行良好,但对其他 PDF 阅读器(例如网页浏览器插件)没有保证。我们进行了简要调查并发现:
buttonField.Actions.OnEnter = new HideAction(floatingField.FullName, false); buttonField.Actions.OnExit = new HideAction(floatingField.FullName);
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateHiddenTextBlock()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add paragraph with text
document.Pages.Add().Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Move the mouse cursor here to display floating text"));
// Save PDF document
document.Save(dataDir + "TextBlock_HideShow_MouseOverOut_out.pdf");
}
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextBlock_HideShow_MouseOverOut_out.pdf"))
{
// Create TextAbsorber object to find all the phrases matching the regular expression
var absorber = new Aspose.Pdf.Text.TextFragmentAbsorber("Move the mouse cursor here to display floating text");
// Accept the absorber for the document pages
document.Pages.Accept(absorber);
// Get the first extracted text fragment
var textFragments = absorber.TextFragments;
var fragment = textFragments[1];
// Create hidden text field for floating text in the specified rectangle of the page
var floatingField = new Aspose.Pdf.Forms.TextBoxField(fragment.Page, new Aspose.Pdf.Rectangle(100, 700, 220, 740));
// Set text to be displayed as field value
floatingField.Value = "This is the \"floating text field\".";
// We recommend to make field 'readonly' for this scenario
floatingField.ReadOnly = true;
// Set 'hidden' flag to make field invisible on document opening
floatingField.Flags |= Aspose.Pdf.Annotations.AnnotationFlags.Hidden;
// Setting a unique field name isn't necessary but allowed
floatingField.PartialName = "FloatingField_1";
// Setting characteristics of field appearance isn't necessary but makes it better
floatingField.DefaultAppearance = new Aspose.Pdf.Annotations.DefaultAppearance("Helv", 10, System.Drawing.Color.Blue);
floatingField.Characteristics.Background = System.Drawing.Color.LightBlue;
floatingField.Characteristics.Border = System.Drawing.Color.DarkBlue;
floatingField.Border = new Aspose.Pdf.Annotations.Border(floatingField);
floatingField.Border.Width = 1;
floatingField.Multiline = true;
// Add text field to the document
document.Form.Add(floatingField);
// Create invisible button on text fragment position
var buttonField = new Aspose.Pdf.Forms.ButtonField(fragment.Page, fragment.Rectangle);
// Create new hide action for specified field (annotation) and invisibility flag
// (You also may reffer floating field by the name if you specified it above)
// Add actions on mouse enter/exit at the invisible button field
buttonField.Actions.OnEnter = new Aspose.Pdf.Annotations.HideAction(floatingField, false);
buttonField.Actions.OnExit = new Aspose.Pdf.Annotations.HideAction(floatingField);
// Add button field to the document
document.Form.Add(buttonField);
// Save PDF document
document.Save(dataDir + "CreateHiddenTextBlock_out.pdf");
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.