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.