Добавить текст в PDF на С#

Формат PDF широко используется для создания различных типов документов, таких как счета-фактуры, финансовые отчеты, резюме и т. д. В мире автоматизации PDF-документы создаются и обрабатываются в веб-приложениях или приложениях для ПК. Таким образом, в некоторых случаях вам может понадобиться программно добавить текст в существующие PDF-файлы. В соответствии с этим в этой статье показано, как добавлять текст в PDF-документы с помощью C#.

C# API для добавления текста в PDF

Чтобы динамически добавлять текст в PDF-файлы, мы будем использовать Aspose.PDF для .NET. Это многофункциональный API, который позволяет создавать PDF-файлы и управлять ими из приложений .NET. Вы можете либо скачать API, либо установить его с помощью NuGet.

PM> Install-Package Aspose.PDF

Добавить текст в PDF с помощью C#

Ниже приведены шаги по добавлению текста в файл PDF с помощью C#.

  • Загрузите файл PDF с помощью класса Document.
  • Получите нужную страницу PDF в объект Page.
  • Создайте объект TextFragment и задайте для него текст, положение, шрифт, цвет фона и т. д.
  • Создайте объект TextBuilder и инициализируйте его с помощью объекта Page.
  • Используйте метод TextBuilder.AppendText(TextFragment) для добавления текста на страницу PDF.
  • Сохраните обновленный файл PDF с помощью метода Document.Save(String).

В следующем примере кода показано, как добавить текст в файл PDF.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.PDF-for-.NET.
// Открыть документ
Document pdfDocument = new Document("input.pdf");

// Получить конкретную страницу
Page pdfPage = (Page)pdfDocument.Pages[1];

// Создать текстовый фрагмент
TextFragment textFragment = new TextFragment("main text");
textFragment.Position = new Position(100, 600);

// Установить свойства текста
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);

// Добавить текстовый фрагмент на страницу PDF
textBuilder.AppendText(textFragment);

// Сохраните полученный PDF-документ.
pdfDocument.Save("output.pdf");

Добавить текст в PDF с помощью TextParagraph

Ниже приведены шаги для добавления текста в файл PDF с помощью TextParagraph.

  • Загрузите файл PDF с помощью класса Document.
  • Получите нужную страницу PDF в объект Page или добавьте новый.
  • Создайте объект TextBuilder и инициализируйте его с помощью объекта Page.
  • Создайте объект класса TextParagraph.
  • Укажите расположение абзаца с помощью свойства TextParagraph.Rectangle.
  • Установите параметры форматирования TextParagraph.
  • Создайте объект TextFragment и задайте для него текст, положение, шрифт, цвет фона и т. д.
  • Добавьте TextFragment в абзац, используя метод TextParagraph.AppendLine(TextFragment).
  • Добавьте абзац на страницу с помощью метода TextBuilder.AppendParagraph(TextParagraph).
  • Сохраните обновленный файл PDF с помощью метода Document.Save(String).

В следующем примере кода показано, как добавить текст в PDF-файл с помощью класса TextParagraph.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.PDF-for-.NET.
string fontFile = "font.ttf";

// Загрузить исходный PDF-файл
Document doc = new Document("input.pdf");

// Создать объект построителя текста для первой страницы документа
TextBuilder textBuilder = new TextBuilder(doc.Pages[1]);

// Создать текстовый фрагмент с образцом строки
TextFragment textFragment = new TextFragment("Hello world");

if (fontFile != "")
{
    // Загрузите шрифт TrueType в объект потока
    using (FileStream fontStream = File.OpenRead(fontFile))
    {
        // Установите имя шрифта для текстовой строки
        textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF);
        
        // Укажите позицию для текстового фрагмента
        textFragment.Position = new Position(10, 10);
        
        // Добавьте текст в TextBuilder, чтобы его можно было разместить поверх файла PDF.
        textBuilder.AppendText(textFragment);
    }

    // Сохраните полученный PDF-документ
    doc.Save("output.pdf");
}

Добавить прозрачный текст в PDF на С#

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

  • Загрузите файл PDF с помощью класса Document.
  • Получите нужную страницу PDF в объект Page или добавьте новый.
  • Создайте и инициализируйте объект Graph.
  • Создайте объект Rectangle и инициализируйте его.
  • Установите свойство Rectangle.GraphInfo.FillColor.
  • Добавьте прямоугольник на график, используя метод Graph.Shapes.Add(Rectangle).
  • Добавьте Graph в коллекцию абзацев страницы с помощью метода Page.Paragraphs.Add(Graph).
  • Создайте объект TextFragment и установите его свойство TextState.ForegroundColor.
  • Добавьте TextFragment на страницу с помощью метода Page.Paragraphs.Add(TextFragment).
  • Сохраните обновленный файл PDF с помощью метода Document.Save(String).

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

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.PDF-for-.NET.
// Создать экземпляр документа
Document doc = new Document("input.pdf");

// Создать постраничную коллекцию PDF-файла
Aspose.Pdf.Page page = doc.Pages.Add();

// Создать объект графика
Aspose.Pdf.Drawing.Graph canvas = new Aspose.Pdf.Drawing.Graph(100, 400);

// Создать экземпляр прямоугольника с определенными размерами
Aspose.Pdf.Drawing.Rectangle rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);

// Создать цветовой объект из цветового канала Alpha
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));

// Добавить прямоугольник в коллекцию фигур объекта Graph
canvas.Shapes.Add(rect);

// Добавить объект графика в коллекцию абзацев объекта страницы
page.Paragraphs.Add(canvas);

// Установите значение, чтобы не менять позицию для графического объекта
canvas.IsChangePosition = false;

// Создайте экземпляр TextFragment с образцом значения
TextFragment text = new TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");

// Создать цветовой объект из альфа-канала
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);

// Установить информацию о цвете для экземпляра текста
text.TextState.ForegroundColor = color;

// Добавить текст в коллекцию абзацев экземпляра страницы
page.Paragraphs.Add(text);

// Сохраните обновленный файл PDF
doc.Save("output.pdf");

Получить бесплатную лицензию

Вы можете использовать Aspose.PDF для .NET без оценочных ограничений, используя временную лицензию.

Вывод

В этой статье вы узнали, как добавлять текст в существующие файлы PDF с помощью C#. Кроме того, вы увидели, как динамически добавлять прозрачный текст в PDF. Вы можете узнать больше о C# PDF API, используя документацию. Кроме того, вы можете размещать свои вопросы на нашем форуме.

Смотрите также