Добавление текста в PDF
Это руководство объясняет, как добавлять текстовое содержимое в PDF‑документы с помощью Aspose.PDF for Python via .NET. Вы узнаете основные методы вставки текста — от размещения простого текстового фрагмента в определённой позиции до стилизации его (шрифт, размер, цвет, стиль), обработки языков с письмом справа налево (RTL), внедрения гиперссылок и работы с макетами абзацев, списками и эффектами прозрачности. Статья также охватывает расширенные сценарии, такие как использование HTML или LaTeX фрагментов, пользовательских шрифтов и опций форматирования текста, например межстрочного и межсимвольного интервалов.
Независимо от того, создаете ли вы простые аннотации или сложные типографские макеты, этот ресурс предоставляет вам базовые строительные блоки для работы с текстом в PDF с использованием Aspose.PDF.
Базовые операции по вставке текста
Aspose.PDF for Python via .NET предоставляет мощный и гибкий API для обработки текста в PDF-файлах. Независимо от того, нужны ли вам простые статические метки, богато отформатированный контент, многоязычный текст или интерактивные гиперссылки, набор инструментов позволяет сделать всё это с помощью лаконичного кода на Python.
Добавить текст простой пример
Aspose.PDF for Python via .NET показывает, как добавить простой фрагмент текста в определённое положение на странице. Вы узнаете, как создать новый PDF‑документ, добавить страницу, вставить текст в заданных координатах и сохранить полученный файл.
- Создайте новый Document объект.
- Используйте
document.pages.add()создать новый пустой Page. - Создайте
TextFragmentс текстовым содержимым. - Установите позицию текста, используя
Positionкласс. Если вы укажетеPosition, текст будет расположен в вашем документе слева направо и смещён вниз. - Настройте внешний вид текста. Вы можете установить размер шрифта, цвет, стиль шрифта и многое другое через
TextState. - Добавьте
TextFragmentк коллекции абзацев страницы сpage.paragraphs.add(text_fragment). - Сохраните документ.
Следующий фрагмент кода показывает, как добавить текст в существующий PDF‑файл:
import math
import sys
import os
import aspose.pdf as ap
# region Basic text insertion
def add_text_simple_case(output_file_name):
# Create a new document
document = ap.Document()
page = document.pages.add()
# Add a text fragment at a specific position
text_fragment = ap.text.TextFragment("Hello, Aspose!")
text_fragment.position = ap.text.Position(100, 600)
page.paragraphs.add(text_fragment)
document.save(output_file_name)
В этом примере кода используется TextFragment. Но вы также можете добавить текст на страницу PDF, используя TextParagraph. Давайте изучим разницу. Этот TextFragment — это отдельный кусок текста. TextFragment представляет собой единичную часть текста — по сути, одну строку текста, которую можно размещать, стилизовать и позиционировать независимо. Он идеален, когда необходимо добавить простой, небольшой объём текста.
Этот TextParagraph — это группа TextFragments. Она может добавлять несколько строк текста. TextParagraph — это контейнер или коллекция из одного или более объектов TextFragment. Он идеален, когда нужно сгруппировать несколько фрагментов — например, чтобы создать блок текста с несколькими строками, словами или отформатированными элементами. TextParagraph также управляет выравниванием текста, межстрочным интервалом и автоматическим размещением на странице. Использование красной линии возможно только с TextParagraph.
Для получения дополнительной информации о Working with Text, пожалуйста, проверьте Форматирование текста в PDF и Извлечение текста из PDF с помощью Python разделы документации.
Добавить текст с помощью TextParagraph
Aspose.PDF for Python via .NET может добавить абзац текста, используя TextBuilder и TextParagraph с параметрами обтекания.
- Создайте новый Document и пустой Page используя
document.pages.add(). - Прочитайте текст из файла или используйте текст по умолчанию.
- Создайте
TextBuilderдобавить контент уровня абзаца с управлением разметкой и переносом. - Создайте
TextParagraphи установите режим переноса (пример используетDISCRETIONARY_HYPHENATION). - Создайте
TextFragment, примените стили и добавьте фрагмент к абзацу. - Добавьте абзац на страницу, используя
TextBuilder. - Сохраните документ.
import math
import sys
import os
import aspose.pdf as ap
def add_paragraph(output_file_name):
document = ap.Document()
page = document.pages.add()
lorem_path = LOREM_PATH
if os.path.exists(lorem_path):
with open(lorem_path, "r", encoding="utf-8") as file:
text = file.read()
else:
text = "Lorem ipsum sample text not found."
builder = ap.text.TextBuilder(page)
paragraph = ap.text.TextParagraph()
paragraph.first_line_indent = 20
paragraph.rectangle = ap.Rectangle(80, 800, 400, 200, True)
# paragraph.formatting_options.wrap_mode = TextFormattingOptions.WordWrapMode.BY_WORDS
paragraph.formatting_options.wrap_mode = (
ap.text.TextFormattingOptions.WordWrapMode.DISCRETIONARY_HYPHENATION
)
fragment = ap.text.TextFragment(text)
fragment.text_state.font = ap.text.FontRepository.find_font("Times New Roman")
fragment.text_state.font_size = 12
paragraph.append_line(fragment)
builder.append_paragraph(paragraph)
document.save(output_file_name)

Добавить абзацы с отступами в PDF
Следующий фрагмент кода показывает, как создать новый PDF‑документ и добавить два абзаца текста с разными стилями отступов:
- Первый абзац демонстрирует отступ первой строки (отступ делается только у первой строки).
- Во втором абзаце демонстрируется отступ последующих строк (все строки после первой имеют отступ).
Он использует классы ‘TextParagraph’, ‘TextBuilder’ и ‘TextFragment’ из Aspose.PDF для точного контроля макета и форматирования.
import math
import sys
import os
import aspose.pdf as ap
def add_paragraphs_indents(output_file_name):
document = ap.Document()
page = document.pages.add()
lorem_path = LOREM_PATH
if os.path.exists(lorem_path):
with open(lorem_path, "r", encoding="utf-8") as file:
text = file.read()
else:
text = "Lorem ipsum sample text not found."
fragment = ap.text.TextFragment(text)
fragment.text_state.font = ap.text.FontRepository.find_font("Times New Roman")
fragment.text_state.font_size = 12
builder = ap.text.TextBuilder(page)
paragraph1 = ap.text.TextParagraph()
paragraph1.first_line_indent = 20
paragraph1.rectangle = ap.Rectangle(80, 800, 300, 50, True)
paragraph1.formatting_options.wrap_mode = (
ap.text.TextFormattingOptions.WordWrapMode.BY_WORDS
)
paragraph1.append_line(fragment)
builder.append_paragraph(paragraph1)
paragraph2 = ap.text.TextParagraph()
paragraph2.subsequent_lines_indent = 20
paragraph2.rectangle = ap.Rectangle(320, 800, 500, 50, True)
paragraph2.formatting_options.wrap_mode = (
ap.text.TextFormattingOptions.WordWrapMode.BY_WORDS
)
paragraph2.append_line(fragment)
builder.append_paragraph(paragraph2)
document.save(output_file_name)
Добавить новую строку текста в PDF
Aspose.PDF for Python via .NET позволяет вставлять многострочный текст в PDF‑документ, используя классы TextFragment, TextParagraph и TextBuilder.
- Создайте новый документ.
- Определите TextFragment, содержащий символ новой строки.
- Установите стиль текста.
- Добавьте фрагмент в абзац.
- Расположите абзац.
- Отобразить абзац на странице.
- Сохраните документ.
import math
import sys
import os
import aspose.pdf as ap
def add_new_line(output_file):
"""Add a new line of text to a PDF document."""
# Create PDF document
document = ap.Document()
page = document.pages.add()
# Initialize new TextFragment with text containing required newline markers
text_fragment = ap.text.TextFragment("Applicant Name: " + os.linesep + " Joe Smoe")
# Set text fragment properties if necessary
text_fragment.text_state.font_size = 12
text_fragment.text_state.font = ap.text.FontRepository.find_font("TimesNewRoman")
text_fragment.text_state.background_color = ap.Color.light_gray
text_fragment.text_state.foreground_color = ap.Color.red
# Create TextParagraph object
par = ap.text.TextParagraph()
# Add new TextFragment to paragraph
par.append_line(text_fragment)
# Set paragraph position
par.position = ap.text.Position(100, 600)
# Create TextBuilder object
text_builder = ap.text.TextBuilder(page)
# Add the TextParagraph using TextBuilder
text_builder.append_paragraph(par)
# Save PDF document
document.save(output_file)
Определить разрывы строк и фиксировать уведомления в PDF
Показано, как создать PDF‑документ, содержащий несколько текстовых фрагментов, и включить журнал уведомлений Aspose.PDF для мониторинга событий компоновки — таких как разрывы строк и переносы текста — во время рендеринга.
- Создайте новый PDF документ.
- Включите журналирование уведомлений.
- Используйте document.pages.add() для создания первой страницы.
- Добавьте несколько фрагментов текста.
- Используйте page.paragraphs.add(text) для отображения каждого фрагмента текста.
- Сохраните документ.
import math
import sys
import os
import aspose.pdf as ap
def determine_line_break(output_file):
"""Create a PDF document with multiple text fragments and log notifications."""
# Create PDF document
document = ap.Document()
# Enable notification logging
document.enable_notification_logging = True
page = document.pages.add()
for i in range(4):
text = ap.text.TextFragment(
"Lorem ipsum \r\ndolor 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."
)
text.text_state.font_size = 20
page.paragraphs.add(text)
# Save PDF document
document.save(output_file)
notifications = document.pages[1].get_notifications()
print(notifications)
Динамически измерять ширину текста в PDF
Динамически измерять ширину символов и строк в определённом шрифте с помощью Aspose.PDF for Python via .NET. Используются методы ‘Font.measure_string()’ и ‘TextState.measure_string()’, чтобы проверить, что измеренные ширины строк согласованы и точны.
- Используйте ‘FontRepository.find_font()’, чтобы получить объект шрифта Arial из репозитория.
- Создайте объект TextState для управления свойствами шрифта.
- Измерять отдельные символы.
- Сравните результаты обоих методов для всех символов от ‘A’ до ‘z’.
- Убедитесь, что оба подхода измерения дают одинаковые результаты.
import math
import sys
import os
import aspose.pdf as ap
def get_text_width_dynamically(output_file):
font = ap.text.FontRepository.find_font("Arial")
ts = ap.text.TextState()
ts.font = font
ts.font_size = 14
if math.fabs(font.measure_string("A", 14) - 9.337) > 0.001:
print("Unexpected font string measure!")
if math.fabs(ts.measure_string("z") - 7.0) > 0.001:
print("Unexpected font string measure!")
c_code = ord("A")
while c_code <= ord("z"):
c = chr(c_code)
fn_measure = font.measure_string(str(c), 14)
ts_measure = ts.measure_string(str(c))
if math.fabs(fn_measure - ts_measure) > 0.001:
print("Font and state string measuring doesn't match!")
c_code += 1
Добавить текст с гиперссылками
Добавьте кликабельные гиперссылки в текст PDF с использованием Aspose.PDF for Python via .NET. Наша библиотека демонстрирует, как добавить несколько текстовых сегментов внутри одного TextFragment и применить гиперссылку к конкретному сегменту, а также стилизовать текстовые сегменты индивидуально (например, цвет, курсивный шрифт).
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Создайте TextFragment.
- Добавьте несколько объектов TextSegment. Каждый сегмент может иметь собственное содержимое и стилизацию. Например, обычный текст или гиперссылка.
- Примените гиперссылку к сегменту. Создайте объект WebHyperlink с нужным URL.
- Оформите сегмент. Настройте цвет, стиль шрифта, размер и т.д., используя text_state.
- Добавьте фрагмент на страницу, используя ‘page.paragraphs.add()’.
- Сохраните PDF.
import math
import sys
import os
import aspose.pdf as ap
def add_text_with_hyperlink(output_file_name):
document = ap.Document()
page = document.pages.add()
fragment = ap.text.TextFragment("Sample Text Fragment")
segment = ap.text.TextSegment(" ... Text Segment 1...")
fragment.segments.append(segment)
segment = ap.text.TextSegment("Link to Aspose")
fragment.segments.append(segment)
segment.hyperlink = ap.WebHyperlink("https://products.aspose.com/pdf")
segment.text_state.foreground_color = ap.Color.blue
segment.text_state.font_style = ap.text.FontStyles.ITALIC
segment = ap.text.TextSegment("TextSegment without hyperlink")
fragment.segments.append(segment)
page.paragraphs.add(fragment)
document.save(output_file_name)

Добавить текст справа налево (RTL) в PDF‑документ
RTL (от Right To Left) — это свойство, указывающее направление написания текста, при котором текст пишется справа налево. Aspose.PDF for Python via .NET демонстрирует, как добавить текст справа налево (RTL), например арабский или иврит, в PDF‑документ.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Создайте TextFragment с RTL‑содержимым. Вставьте ваш арабский, иврит или другой текст на RTL‑языке в качестве содержимого фрагмента. Установите шрифт и стилизацию. Выберите шрифт, который поддерживает сценарий RTL (например, Tahoma, Arial Unicode MS). Установите font_size и foreground_color по необходимости.
- Установите горизонтальное выравнивание по правому краю, используя ’text_fragment.horizontal_alignment’.
- Добавьте фрагмент текста на страницу.
- Сохраните PDF‑документ.
import math
import sys
import os
import aspose.pdf as ap
def add_text_with_rtl_text(output_file_name):
document = ap.Document()
page = document.pages.add()
# Styled text fragment
text_fragment = ap.text.TextFragment(
"يعتبر خوجا نصر الدين شخصية فولكلورية من الشرق الإسلامي وبعض شعوب البحر الأبيض المتوسط والبلقان، وهو بطل القصص والحكايات القصيرة الفكاهية والساخرة، وأحيانًا الحكايات اليومية."
)
text_fragment.text_state.font = ap.text.FontRepository.find_font("Tahoma")
text_fragment.text_state.font_size = 14
text_fragment.text_state.foreground_color = ap.Color.blue
text_fragment.horizontal_alignment = ap.HorizontalAlignment.RIGHT
page.paragraphs.add(text_fragment)
document.save(output_file_name)

Стилизация текста
Добавить текст со стилизацией шрифта
Это более продвинутый пример, демонстрирующий стилизацию текста, настройку шрифтов и смешанный формат текста (используя субскриптные сегменты). Aspose.PDF объясняет, как применять свойства шрифта, такие как семейство шрифта, размер, цвет, полужирный, курсив и подчеркивание, к фрагменту текста. Кроме того, этот фрагмент кода демонстрирует, как использовать несколько текстовых сегментов в одном фрагменте для создания сложных текстовых выражений — например, включающих символы нижнего или верхнего индекса, часто требуемые в формулах или научных обозначениях.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Создайте TextFragment для простого стилизованного текста.
- Определите текстовое содержимое.
- Установите позицию, используя координаты Position(x, y).
- Примените стилизацию через свойство ’text_state’ — шрифт, font_size, foreground_color, font_style, underline.
- Создайте сложное выражение с несколькими объектами TextSegment. Каждый TextSegment представляет собой часть текста, которой можно задать собственный стиль. Это позволяет создавать выражения, такие как математические или химические формулы.
- Определите несколько объектов TextState. Один для основного текста (text_state_letters). Другой — для текста в виде нижнего или верхнего индекса (text_state_index).
- Объедините текстовые сегменты. Добавьте каждый сегмент к ‘TextFragment’, используя ‘segments.append()’.
- Добавьте оба текстовых объекта на страницу. Используйте ‘page.paragraphs.add()’ для размещения их в документе.
- Сохраните окончательный Document.
import math
import sys
import os
import aspose.pdf as ap
def add_text_with_font_styling(output_file_name):
document = ap.Document()
page = document.pages.add()
# Initialize an empty TextFragment to build a formula using segments
formula = ap.text.TextFragment()
text_fragment = ap.text.TextFragment("Hello, Aspose!")
text_fragment.position = ap.text.Position(100, 600)
text_fragment.text_state.font = ap.text.FontRepository.find_font("Arial")
text_fragment.text_state.font_size = 14
text_fragment.text_state.foreground_color = ap.Color.blue
text_fragment.text_state.font_style = (
ap.text.FontStyles.BOLD | ap.text.FontStyles.ITALIC
)
text_fragment.text_state.underline = True
text_fragment.horizontal_alignment = ap.HorizontalAlignment.LEFT
text_state_letters = ap.text.TextState()
text_state_letters.font = ap.text.FontRepository.find_font("Arial")
text_state_letters.font_size = 14
text_state_letters.foreground_color = ap.Color.blue
text_state_letters.font_style = ap.text.FontStyles.BOLD
text_state_index = ap.text.TextState()
text_state_index.font = ap.text.FontRepository.find_font("Arial")
text_state_index.font_size = 14
text_state_index.foreground_color = ap.Color.dark_red
# text_state_index.superscript = True
text_state_index.subscript = True
position = ap.text.Position(100, 500)
# Helper function to add segments
def add_segment(text, state):
seg = ap.text.TextSegment(text)
seg.text_state = state
seg.position = position
formula.segments.append(seg)
add_segment("S = a", text_state_letters)
add_segment("2n", text_state_index)
add_segment(" + a", text_state_letters)
add_segment("2n+1", text_state_index)
add_segment(" + a", text_state_letters)
add_segment("2n+2", text_state_index)
formula.horizontal_alignment = ap.HorizontalAlignment.LEFT
page.paragraphs.add(text_fragment)
page.paragraphs.add(formula)
document.save(output_file_name)

Добавить прозрачный текст
Добавьте полупрозрачные фигуры и текст в PDF-документ, используя Aspose.PDF for Python. Он создает цветной прямоугольник с частичной непрозрачностью и накладывает TextFragment с прозрачным цветом переднего плана.
- Инициализируйте объект Document и добавьте пустую страницу для рисования содержимого.
- Используйте ‘ap.drawing.Graph’ для создания холста, который позволяет рисовать фигуры.
- Добавьте прямоугольник с полупрозрачной заливкой.
- Предотвратить смещение позиции холста.
- Добавьте холст на страницу. Вставьте графические фигуры в коллекцию абзацев страницы.
- Создайте прозрачный текстовый фрагмент.
- Вставьте текстовый фрагмент в коллекцию абзацев страницы.
- Сохраните PDF‑документ.
import math
import sys
import os
import aspose.pdf as ap
def add_text_transparent(output_file_name):
# Create PDF document
document = ap.Document()
page = document.pages.add()
# Create Graph object
canvas = ap.drawing.Graph(100.0, 400.0)
# Create rectangle with semi-transparent fill
rect = ap.drawing.Rectangle(100, 100, 400, 400)
rect.graph_info.fill_color = ap.Color.from_argb(128, 0xC5, 0xB5, 0xFF)
canvas.shapes.add(rect)
# Prevent position shift
canvas.is_change_position = False
page.paragraphs.add(canvas)
# Create transparent text
text = ap.text.TextFragment(
"This is the transparent text. "
"This is the transparent text. "
"This is the transparent text."
)
text.text_state.foreground_color = ap.Color.from_argb(30, 0, 255, 0)
page.paragraphs.add(text)
document.save(output_file_name)
Добавить невидимый текст в PDF
В этом примере показано, как создать PDF‑документ, содержащий как видимый, так и невидимый текст. Невидимый текст остаётся частью структуры документа, но скрыт от просмотра, что делает его полезным для встраивания метаданных, тегов доступности или поискового контента без изменения макета.
- Создайте PDF Document и Page.
- Создайте текстовый фрагмент с повторяющимся видимым содержимым.
- Добавьте второй фрагмент текста и пометьте его как невидимый.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def add_text_invisible(output_file_name):
# Create PDF document
document = ap.Document()
page = document.pages.add()
# Add visible text
text1 = ap.text.TextFragment(
"This is the visible text. This is the visible text. This is the visible text."
)
page.paragraphs.add(text1)
# Create transparent text
text2 = ap.text.TextFragment(
"This is the invisible text. "
"This is the invisible text. "
"This is the invisible text."
)
text2.text_state.invisible = True
page.paragraphs.add(text2)
document.save(output_file_name)
Добавить текст с оформлением границы в PDF
Библиотека Aspose.PDF показывает, как создать PDF‑документ, содержащий стилизованный фрагмент текста с видимой границей. Метод применяет цвета фона и переднего плана, настройки шрифта и обводку (границу) вокруг прямоугольника текста для усиления визуального акцента.
- Создайте PDF Document и Page.
- Создайте и разместите текстовый фрагмент. Добавьте текстовый фрагмент с сообщением и установите его позицию.
- Примените стили текста. Установить шрифт Times New Roman, размер 12. Применить светло-серый фон и красный цвет переднего плана (текст).
- Настройте стили границы.
- Добавьте текст на страницу. Используйте TextBuilder, чтобы добавить стилизованный текст на страницу.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def add_text_border(output_file_name):
# Create PDF document
document = ap.Document()
# Get particular page
page = document.pages.add()
# Create text fragment
text_fragment = ap.text.TextFragment("This is sample text with border.")
text_fragment.position = ap.text.Position(10, 700)
# Set text properties
text_fragment.text_state.font = ap.text.FontRepository.find_font("Times New Roman")
text_fragment.text_state.font_size = 12
text_fragment.text_state.background_color = ap.Color.light_gray
text_fragment.text_state.foreground_color = ap.Color.red
# Set StrokingColor property for drawing border (stroking) around text rectangle.
# Note: This only affects the border if draw_text_rectangle_border is set to True.
text_fragment.text_state.stroking_color = ap.Color.dark_red
# Enable drawing of the text rectangle border
text_fragment.text_state.draw_text_rectangle_border = True
text_builder = ap.text.TextBuilder(page)
text_builder.append_text(text_fragment)
# Save PDF document
document.save(output_file_name)
Добавить перечёркнутый текст в PDF
Добавьте форматирование зачеркивания (strikeout) к фрагменту текста в PDF‑документе. Зачеркнутый текст полезен для указания удалений, исправлений или акцента в аннотированных документах.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Создайте и оформите текстовый фрагмент.
- Примените форматирование цвета и зачеркивания. Установить фон светло-серым, цвет текста красным и включите зачеркивание.
- Расположите текст.
- Используйте ‘TextBuilder’, чтобы добавить стилизованный текст на страницу.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def add_strikeout_text(output_file_name):
# Create PDF document
document = ap.Document()
page = document.pages.add()
# Create text fragment
text_fragment = ap.text.TextFragment("This is sample strikeout text.")
# Set text properties
text_fragment.text_state.font_size = 12
text_fragment.text_state.font = ap.text.FontRepository.find_font("TimesNewRoman")
text_fragment.text_state.background_color = ap.Color.light_gray
text_fragment.text_state.foreground_color = ap.Color.red
text_fragment.text_state.strike_out = True
text_fragment.text_state.font_style = ap.text.FontStyles.BOLD
text_fragment.position = ap.text.Position(100, 600)
# Create TextBuilder object
text_builder = ap.text.TextBuilder(page)
text_builder.append_text(text_fragment)
# Save PDF document
document.save(output_file_name)
Продвинутые цветовые эффекты
Применение осевого градиента к тексту в PDF
Aspose.PDF for Python via .NET демонстрирует, как применить линейный градиент к тексту в PDF‑документе. Аксиальный градиент плавно переходит от красного к синему по всему тексту, создавая визуально эффектный заголовок. Эта техника идеальна для стилизованных названий, брендинга или декоративных элементов в макете PDF‑документов.
- Инициализируйте новый документ и добавьте пустую страницу.
- Создайте и оформите фрагмент текста. Добавьте заголовок, задайте позицию, шрифт и размер.
- Примените осевое градиентное затенение с помощью ‘GradientAxialShading’. Установите основной цвет, используя GradientAxialShading, от красного к синему.
- Добавьте стиль подчеркивания.
- Вставьте стилизованный фрагмент текста на страницу.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def apply_gradient_axial_shading_to_text(output_file_name):
# Create PDF document
document = ap.Document()
page = document.pages.add()
text_fragment = ap.text.TextFragment("PDF TITLE")
text_fragment.position = ap.text.Position(100, 600)
text_fragment.text_state.font_size = 36
text_fragment.text_state.font = ap.text.FontRepository.find_font("Arial Bold")
text_fragment.text_state.foreground_color = ap.Color()
text_fragment.text_state.foreground_color.pattern_color_space = (
ap.drawing.GradientAxialShading(ap.Color.red, ap.Color.blue)
)
text_fragment.text_state.underline = True
page.paragraphs.add(text_fragment)
document.save(output_file_name)
Применение радиального градиента к тексту в PDF
Радиальный градиент создаёт круговой переход цвета, который излучается наружу от центра текста, предлагая визуально динамичную стилизацию для заголовков, подзаголовков или декоративных элементов.
- Инициализируйте новый документ и добавьте пустую страницу.
- Создайте и оформите фрагмент текста. Добавьте заголовок, задайте позицию, шрифт и размер.
- Примените радиальный градиент с помощью ‘GradientRadialShading’. Установите цвет переднего плана, используя GradientRadialShading, от красного к синему.
- Добавьте стиль подчеркивания.
- Вставьте стилизованный фрагмент текста на страницу.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def apply_gradient_radial_shading_to_text(output_file_name):
# Create PDF document
document = ap.Document()
page = document.pages.add()
text_fragment = ap.text.TextFragment("PDF TITLE")
text_fragment.position = ap.text.Position(100, 600)
text_fragment.text_state.font_size = 36
text_fragment.text_state.font = ap.text.FontRepository.find_font("Arial Bold")
# Apply radial gradient shading (red to blue)
text_fragment.text_state.foreground_color = ap.Color()
text_fragment.text_state.foreground_color.pattern_color_space = (
ap.drawing.GradientRadialShading(ap.Color.red, ap.Color.blue)
)
text_fragment.text_state.underline = True
page.paragraphs.add(text_fragment)
document.save(output_file_name)

HTML и LaTeX фрагменты
Добавить HTML-текст в PDF-документ
Библиотека Aspose.PDF for Python via .NET позволяет вставлять контент в формате HTML в PDF‑документ с помощью класса HtmlFragment. Используя HTML‑теги, вы можете отобразить стилизованный, структурированный или похожий на формулу текст непосредственно в PDF.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Создайте экземпляр класса HtmlFragment и передайте вашу строку HTML в качестве параметра.
- Добавьте фрагмент на страницу, используя ‘page.paragraphs.add()’, чтобы вставить HTML‑контент.
- Сохраните PDF.
import math
import sys
import os
import aspose.pdf as ap
def add_text_html_fragment(output_file_name):
# Create a new document
document = ap.Document()
page = document.pages.add()
# Add a text fragment at a specific position
text_fragment = ap.HtmlFragment("<pre>S=a<sub>2n</sub>+a<sup>2</sup><pre>")
page.paragraphs.add(text_fragment)
document.save(output_file_name)

Добавьте стилизованный HTML‑фрагмент с различным форматированием в PDF‑документ
Мы можем определить HTML‑фрагмент и задать стиль текста непосредственно с помощью HTML‑тегов. Внедрить стилизованный HTML‑контент в PDF‑документ. Этот фрагмент кода создаёт новый PDF‑файл, добавляет страницу, вставляет HTML‑фрагмент с различными элементами форматирования (заголовки, абзацы, ссылки и встроенные стили) и сохраняет результат по указанному пути.
- Инициализирует новый объект Document для представления PDF.
- Добавляет пустую страницу к документу, на которой будет размещён HTML‑контент.
- Подготовьте HTML‑контент. Строка HTML содержит заголовок h1, зелёный абзац с полужирным, курсивным и подчёркнутым текстом, а также гиперссылку на веб‑сайт с увеличенным размером шрифта.
- Создайте HTML-фрагмент. Оберните строку HTML в объект HtmlFragment.
- Вставьте HTML в Page. Добавляет фрагмент HTML в коллекцию абзацев страницы, отображая HTML как нативный PDF‑контент.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def add_html_fragment(output_file_name):
document = ap.Document()
page = document.pages.add()
html_content = """
<h1 style='color:blue;'>Hello, Aspose!</h1>
<p>This is a sample paragraph with <b>bold</b>, <i>italic</i>, and <u>underlined</u> text.</p>
<p style='color:green;'>This paragraph is green.</p>
<a href='https://www.aspose.com' style='font-size:16px;'>Visit Aspose</a>
"""
html_fragment = ap.HtmlFragment(html_content)
page.paragraphs.add(html_fragment)
document.save(output_file_name)

Добавить HTML‑фрагмент с переопределённым состоянием текста
Как мы видели в предыдущем примере, можно задавать стили непосредственно в HTML‑коде. Это имеет свои преимущества, но и некоторые недостатки. Предположим, мы работаем с HTML клиента и хотим унифицировать внешний вид нашего вывода. В этом случае мы можем переопределить стилизацию клиента, используя наш собственный TextState, как показано в следующем примере.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Подготовьте HTML‑контент. Строка HTML содержит заголовок h1 с шрифтом Verdana, зелёный абзац с полужирным, курсивным и подчёркнутым текстом, а также гиперссылку на веб‑сайт с более крупным размером шрифта.
- Создайте HTML-фрагмент. Оберните строку HTML в объект HtmlFragment.
- Переопределите форматирование текста. Создайте объект TextState и установите Font, Font Size и Text Color.
- Добавьте HTML fragment в коллекцию абзацев страницы.
- Сохраните Document.
import math
import sys
import os
import aspose.pdf as ap
def add_html_fragment_override_text_state(output_file_name):
document = ap.Document()
page = document.pages.add()
html_content = """
<h1 style='color:blue;font-family:Verdana'>Hello, Aspose!</h1>
<p>This is a sample paragraph with <b>bold</b>, <i>italic</i>, and <u>underlined</u> text.</p>
<p style='color:green;'>This paragraph is green.</p>
<a href='https://www.aspose.com' style='font-size:16px;'>Visit Aspose</a>
"""
html_fragment = ap.HtmlFragment(html_content)
html_fragment.text_state = ap.text.TextState()
html_fragment.text_state.font = ap.text.FontRepository.find_font("Arial")
html_fragment.text_state.font_size = 14
html_fragment.text_state.foreground_color = ap.Color.red
page.paragraphs.add(html_fragment)
document.save(output_file_name)

Добавить LaTeX-текст в PDF Document
Добавьте математические выражения в формате LaTeX в PDF‑документ, используя класс TeXFragment в Aspose.PDF for Python via .NET. LaTeX — мощная система наборa, широко используемая для создания научных и математических документов. С помощью TeXFragment вы можете напрямую отображать математические обозначения и символы LaTeX внутри страницы PDF.
- Создайте новый документ и страницу, используя ‘Document()’, и ‘document.pages.add()’, чтобы добавить пустую страницу.
- Используйте класс TeXFragment для прямого рендеринга синтаксиса LaTeX.
- Добавьте содержимое LaTeX в макет PDF с помощью ‘page.paragraphs.add()’.
- Сохраните PDF.
import math
import sys
import os
import aspose.pdf as ap
def add_text_latex_fragment(output_file_name):
# Create a new document
document = ap.Document()
page = document.pages.add()
# Add a text fragment at a specific position
text_fragment = ap.TeXFragment(
"\\underbrace{\\overbrace{a+b}^6 \\cdot \\overbrace{c+d}^7}_\\text{example of text} = 42"
)
page.paragraphs.add(text_fragment)
document.save(output_file_name)

Пользовательские шрифты
Использовать пользовательский Font из файла
Этот пример позволяет добавить текст в PDF‑файл, используя пользовательский шрифт OpenType в Aspose.PDF for Python via .NET. Он показывает, как создать новый PDF‑документ, точно позиционировать текст на странице и применить пользовательское форматирование, такое как тип шрифта, размер, цвет и курсивный стиль.
- Создайте новый PDF документ и добавьте страницу.
- Определите текстовое содержание, которое вы хотите добавить в PDF.
- Установите позицию текста.
- Добавьте TextFragment на страницу.
- Сохраните PDF‑документ.
Эта функция работает не только с шрифтами OTF, но и с шрифтами TTF.
import math
import sys
import os
import aspose.pdf as ap
def use_custom_font_from_file(output_file_name):
font_path = os.path.join(FONT_DIR, "BriosoPro Italic.otf")
document = ap.Document()
page = document.pages.add()
fragment = ap.text.TextFragment("Hello, Aspose!")
fragment.position = ap.text.Position(100, 600)
fragment.text_state.font = ap.text.FontRepository.open_font(font_path)
fragment.text_state.font_size = 24
fragment.text_state.foreground_color = ap.Color.blue
fragment.text_state.font_style = ap.text.FontStyles.ITALIC
page.paragraphs.add(fragment)
document.save(output_file_name)

Использовать пользовательский Font из потока
Этот фрагмент кода демонстрирует, как добавить текст в PDF‑документ, используя пользовательский встроенный шрифт OpenType (OTF) с Aspose.PDF for Python via .NET. Он показывает, как открыть файл шрифта как поток, встроить его в PDF, чтобы обеспечить доступность шрифта на разных системах, и применить форматирование текста, такое как размер шрифта, цвет и курсивный стиль. Такой подход идеален для создания визуально согласованных PDF‑файлов, сохраняющих типографику даже при совместном использовании или просмотре на устройствах без установленного шрифта.
- Загрузите файл шрифта как бинарный поток.
- Откройте и встрайте шрифт, используя ‘FontRepository.open_font’.
- Создайте новый PDF документ и добавьте страницу.
- Добавьте стилизованный текстовый фрагмент с:
- Встроенный пользовательский шрифт.
- Курсивный стиль и синий цвет.
- Конкретный размер шрифта и положение.
- Сохраните окончательный документ в указанный путь вывода.
import math
import sys
import os
import aspose.pdf as ap
def use_custom_font_from_stream(output_file_name):
font_path = os.path.join(FONT_DIR, "BriosoPro Italic.otf")
with open(font_path, "rb") as font_stream:
font = ap.text.FontRepository.open_font(font_stream, ap.text.FontTypes.OTF)
font.is_embedded = True
document = ap.Document()
page = document.pages.add()
fragment = ap.text.TextFragment("Hello, Aspose!")
fragment.position = ap.text.Position(100, 600)
fragment.text_state.font = font
fragment.text_state.font_size = 14
fragment.text_state.foreground_color = ap.Color.blue
fragment.text_state.font_style = ap.text.FontStyles.ITALIC
page.paragraphs.add(fragment)
document.save(output_file_name)
Встраивание шрифтов обеспечивает согласованное отображение на разных платформах, что делает этот подход идеальным для брендинга, точности дизайна и поддержки многоязычности.