Скрытый текстовый блок в PDF-файле

В этом уроке мы объясним, как создать скрытый текстовый блок в файле PDF с помощью библиотеки Aspose.PDF для .NET. Скрытый текстовый блок — это плавающий текст, который становится видимым при наведении курсора мыши на определенную область. Мы пройдем пошаговый процесс создания скрытого текстового блока, используя предоставленный исходный код C#.

Требования

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Установлена библиотека Aspose.PDF для .NET.
  • Базовое понимание программирования на C#.

Шаг 1. Настройте каталог документов

Сначала вам нужно указать путь к каталогу, в котором вы хотите сохранить созданный PDF-файл. Заменять"YOUR DOCUMENT DIRECTORY" вdataDirпеременная с путем к желаемому каталогу.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Шаг 2. Создайте образец документа

На этом этапе мы создаем образец PDF-документа и добавляем к нему фрагмент текста. Текстовый фрагмент будет служить триггером для отображения скрытого текстового блока.

string outputFile = dataDir + "TextBlock_HideShow_MouseOverOut_out.pdf";
Document doc = new Document();
doc.Pages.Add().Paragraphs.Add(new TextFragment("Move the mouse cursor here to display floating text"));
doc.Save(outputFile);

Шаг 3: Откройте документ

Теперь мы открываем ранее созданный документ с помощьюDocument сорт.

Document document = new Document(outputFile);

Шаг 4: Найдите фрагмент текста

Мы используемTextFragmentAbsorber объект, чтобы найти фрагмент текста, который вызовет отображение скрытого текстового блока. В данном случае мы ищем точный текст «Наведите сюда курсор мыши, чтобы отобразить плавающий текст».

TextFragmentAbsorber absorber = new TextFragmentAbsorber("Move the mouse cursor here to display floating text");
document.Pages.Accept(absorb);
TextFragmentCollection textFragments = absorb.TextFragments;
TextFragment fragment = textFragments[1];

Шаг 5. Создайте скрытое текстовое поле

Мы создаемTextBoxField объект для представления скрытого текстового поля. Это поле будет содержать текст, который становится видимым при наведении курсора мыши на текст триггера.

TextBoxField floatingField = new TextBoxField(fragment.Page, new Rectangle(100, 700, 220, 740));
floatingField.Value = "This is the \"floating text field\".";
floatingField. ReadOnly = true;
floatingField.Flags |= AnnotationFlags.Hidden;
floatingField.PartialName = "FloatingField_1";
floatingField.DefaultAppearance = new DefaultAppearance("Helv", 10, System.Drawing.Color.Blue);
floatingField.Characteristics.Background = System.Drawing.Color.LightBlue;
floatingField.Characteristics.Border = System.Drawing.Color.DarkBlue;
floatingField.Border = new Border(floatingField);
floatingField.Border.Width = 1;
floatingField. Multiline = true;

Шаг 6. Добавьте скрытое текстовое поле в документ

Мы добавляем скрытое текстовое поле в коллекцию форм документа.

document.Form.Add(floatingField);

Шаг 7: Создайте невидимую кнопку

Мы создаем невидимое поле кнопки, которое будет располагаться поверх фрагмента текста триггера. Это поле кнопки будет иметь действия, связанные с событиями входа и выхода мыши.

ButtonField buttonField = new ButtonField(fragment.Page, fragment.Rectangle);
buttonField.Actions.OnEnter = new HideAction(floatingField, false);
buttonField.Actions.OnExit = new HideAction(floatingField);
document.Form.Add(buttonField);

Шаг 8: Сохраните документ

Наконец, мы сохраняем измененный документ со скрытым текстовым блоком.

document. Save(outputFile);

Пример исходного кода для скрытого текстового блока с использованием Aspose.PDF для .NET

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string outputFile = dataDir + "TextBlock_HideShow_MouseOverOut_out.pdf";
// Создать образец документа с текстом
Document doc = new Document();
doc.Pages.Add().Paragraphs.Add(new TextFragment("Move the mouse cursor here to display floating text"));
doc.Save(outputFile);
// Открыть документ с текстом
Document document = new Document(outputFile);
// Создайте объект TextAbsorber, чтобы найти все фразы, соответствующие регулярному выражению.
TextFragmentAbsorber absorber = new TextFragmentAbsorber("Move the mouse cursor here to display floating text");
// Примите поглотитель для страниц документа
document.Pages.Accept(absorber);
// Получить первый извлеченный фрагмент текста
TextFragmentCollection textFragments = absorber.TextFragments;
TextFragment fragment = textFragments[1];
// Создать скрытое текстовое поле для плавающего текста в указанном прямоугольнике страницы.
TextBoxField floatingField = new TextBoxField(fragment.Page, new Rectangle(100, 700, 220, 740));
// Установить текст, который будет отображаться как значение поля
floatingField.Value = "This is the \"floating text field\".";
// Мы рекомендуем сделать поле «только для чтения» для этого сценария.
floatingField.ReadOnly = true;
// Установите флаг «скрыто», чтобы сделать поле невидимым при открытии документа.
floatingField.Flags |= AnnotationFlags.Hidden;
// Установка уникального имени поля не обязательна, но разрешена.
floatingField.PartialName = "FloatingField_1";
// Настройка характеристик внешнего вида поля не обязательна, но делает ее лучше.
floatingField.DefaultAppearance = new DefaultAppearance("Helv", 10, System.Drawing.Color.Blue);
floatingField.Characteristics.Background = System.Drawing.Color.LightBlue;
floatingField.Characteristics.Border = System.Drawing.Color.DarkBlue;
floatingField.Border = new Border(floatingField);
floatingField.Border.Width = 1;
floatingField.Multiline = true;
// Добавить текстовое поле в документ
document.Form.Add(floatingField);
// Создать невидимую кнопку в позиции фрагмента текста
ButtonField buttonField = new ButtonField(fragment.Page, fragment.Rectangle);
// Создайте новое действие скрытия для указанного поля (аннотации) и флага невидимости.
//(Вы также можете ссылаться на плавающее поле по имени, если вы указали его выше.)
// Добавьте действия при входе/выходе мыши в поле невидимой кнопки.
buttonField.Actions.OnEnter = new HideAction(floatingField, false);
buttonField.Actions.OnExit = new HideAction(floatingField);
// Добавить поле кнопки в документ
document.Form.Add(buttonField);
// Сохранить документ
document.Save(outputFile);

Заключение

В этом уроке вы узнали, как создать скрытый текстовый блок с помощью библиотеки Aspose.PDF для .NET. Следуя пошаговому руководству, вы можете создать PDF-документ со скрытым текстовым полем, которое становится видимым при наведении курсора мыши на определенную область. Вы можете настроить внешний вид и поведение скрытого текстового блока в соответствии со своими требованиями.

Часто задаваемые вопросы

Вопрос: Какова цель урока «Скрытый текстовый блок в PDF-файле»?

О: В учебнике «Скрытый текстовый блок в PDF-файле» объясняется, как создать скрытый текстовый блок в PDF-файле с помощью библиотеки Aspose.PDF для .NET. Скрытый текстовый блок — это плавающий текст, который становится видимым при наведении курсора мыши на определенную область. В этом руководстве представлено пошаговое руководство с использованием исходного кода C#.

Вопрос: Зачем мне создавать скрытый текстовый блок в PDF-файле?

О: Создание скрытого текстового блока может быть полезно для интерактивных PDF-документов, в которых вы хотите предоставить дополнительную информацию или контекст, который становится видимым только тогда, когда пользователь наводит курсор мыши на обозначенную область.

Вопрос: Как настроить каталог документов?

О: Чтобы настроить каталог документов:

  1. Заменять"YOUR DOCUMENT DIRECTORY" вdataDir переменная с путем к каталогу, в котором вы хотите сохранить созданный PDF-файл.

Вопрос: Как создать образец документа и добавить в него фрагмент текста?

О: В этом уроке вы используетеDocument класс для создания образца PDF-документа и добавления фрагмента текста. Этот текстовый фрагмент служит триггером для отображения скрытого текстового блока.

Вопрос: Как найти фрагмент текста, который вызывает скрытый текстовый блок?

О: В учебнике показано, как использоватьTextFragmentAbsorber объект, чтобы найти фрагмент текста, который запускает отображение скрытого текстового блока. Он ищет определенную текстовую строку в документе PDF.

Вопрос: Как создать и настроить скрытое текстовое поле?

А: Вы создаетеTextBoxField объект для представления скрытого текстового поля. В руководстве представлен код для установки различных свойств, таких как положение, значение, внешний вид и поведение скрытого текстового поля.

Вопрос: Как создать невидимую кнопку, связанную со скрытым текстовым блоком?

О: Невидимое поле кнопки создается с помощьюButtonField сорт. Это поле кнопки расположено поверх фрагмента текста триггера и содержит действия, связанные с событиями входа и выхода мыши. Эти действия управляют видимостью скрытого текстового блока.

Вопрос: Могу ли я настроить внешний вид скрытого текстового блока и области триггера?

О: Да, вы можете настроить различные свойства как скрытого текстового поля, так и невидимой кнопки, включая шрифт, цвет, размер и расположение.

Вопрос: Как сохранить измененный документ со скрытым текстовым блоком?

О: В учебнике показано, как сохранить измененный документ с помощьюSave методDocument сорт.