Добавление объекта Прямоугольник в PDF файл
Добавление объекта Прямоугольник
Aspose.PDF для C++ поддерживает возможность добавления графических объектов (например, график, линия, прямоугольник и т. д.) в PDF документы. Вы также можете добавить объект Прямоугольник, где также предлагается возможность заполнить объект прямоугольника определенным цветом, контролировать порядок наложения, добавить градиентную заливку и т. д.
Сначала давайте рассмотрим возможность создания объекта Прямоугольник.
Следуйте шагам ниже:
-
Создайте новый PDF Документ
-
Добавьте Страницу в коллекцию страниц PDF файла
-
Добавить Text fragment в коллекцию абзацев экземпляра страницы
-
Создать экземпляр Graph
-
Установить границу для Drawing object
-
Создать экземпляр Rectangle
-
Добавить объект Rectangle в коллекцию форм объекта Graph
-
Добавить графический объект в коллекцию абзацев экземпляра страницы
-
Добавить Text fragment в коллекцию абзацев экземпляра страницы
-
И сохранить ваш PDF файл
private static void AddRectangle(Page page, float x, float y, float width, float height, Color color, int zindex)
{
// Создать графический объект с размерами, такими же, как указано для объекта Rectangle
Aspose.Pdf.Drawing.Graph graph = new Aspose.Pdf.Drawing.Graph(width, height)
{
// Можно ли изменить позицию экземпляра графика
IsChangePosition = false,
// Установить координату Left для экземпляра Graph
Left = x,
// Установить координату Top для объекта Graph
Top = y
};
// Добавить прямоугольник внутри "graph"
Rectangle rect = new Rectangle(0, 0, width, height);
// Установить цвет заливки прямоугольника
rect.GraphInfo.FillColor = color;
// Цвет графического объекта
rect.GraphInfo.Color = color;
// Добавить прямоугольник в коллекцию форм экземпляра графика
graph.Shapes.Add(rect);
// Установить Z-Index для объекта прямоугольника
graph.ZIndex = zindex;
// Добавить график в коллекцию абзацев объекта страницы
page.Paragraphs.Add(graph);
}
Создать объект заполненного прямоугольника
Aspose.PDF для C++ также предлагает функцию заполнения объекта прямоугольника определенным цветом.
Следующий фрагмент кода показывает, как добавить объект Rectangle, заполненный цветом.
{
private const string _dataDir = "C:\\Samples\\";
public static void RectangleFilled()
{
// Создать экземпляр документа
var doc = new Document();
// Добавить страницу в коллекцию страниц PDF файла
var page = doc.Pages.Add();
// Создать экземпляр графа
var graph = new Aspose.Pdf.Drawing.Graph(100, 400);
// Добавить объект графа в коллекцию абзацев экземпляра страницы
page.Paragraphs.Add(graph);
// Создать экземпляр прямоугольника
var rect = new Rectangle(100, 100, 200, 120);
// Указать цвет заполнения для объекта графа
rect.GraphInfo.FillColor = Color.Red;
// Добавить объект прямоугольника в коллекцию форм объекта графа
graph.Shapes.Add(rect);
// Сохранить PDF файл
doc.Save(_dataDir + "CreateFilledRectangle_out.pdf");
}
Посмотрите на результат прямоугольника, заполненного сплошным цветом:
Добавление Рисунка с Градиентной Заливкой
Aspose.PDF для C++ поддерживает возможность добавления графических объектов в PDF документы, и иногда требуется заполнить графические объекты градиентным цветом. Чтобы заполнить графические объекты градиентным цветом, нам нужно установить setPatterColorSpace с объектом gradientAxialShading, как показано ниже.
Следующий фрагмент кода показывает, как добавить объект Rectangle, который заполнен градиентным цветом.
public static void CreateFilledRectangletGradientFill()
{
// Создать экземпляр документа
var doc = new Document();
// Добавить страницу в коллекцию страниц PDF файла
var page = doc.Pages.Add();
// Создать экземпляр Graph
var graph = new Aspose.Pdf.Drawing.Graph(400, 400);
// Добавить графический объект в коллекцию абзацев экземпляра страницы
page.Paragraphs.Add(graph);
// Создать экземпляр Rectangle
var rect = new Rectangle(0, 0, 300, 300);
// Указать цвет заливки для графического объекта
var gradientColor = new Color();
var gradientSettings = new GradientAxialShading(Color.Red, Color.Blue)
{
Start = new Point(0, 0),
End = new Point(350, 350)
};
gradientColor.PatternColorSpace = gradientSettings;
rect.GraphInfo.FillColor = gradientColor;
// Добавить объект прямоугольника в коллекцию форм графического объекта
graph.Shapes.Add(rect);
// Сохранить PDF файл
doc.Save(_dataDir + "CreateFilledRectangle_out.pdf");
}
Создание прямоугольника с альфа-каналом цвета
Aspose.PDF для C++ поддерживает заполнение объекта прямоугольника определённым цветом. Объект прямоугольника также может иметь альфа-канал цвета для создания прозрачного вида. Следующий фрагмент кода показывает, как добавить объект Rectangle с альфа-каналом цвета.
Пиксели изображения могут хранить информацию об их непрозрачности вместе со значением цвета. Это позволяет создавать изображения с прозрачными или полупрозрачными областями.
Вместо того чтобы делать цвет прозрачным, каждый пиксель хранит информацию о том, насколько он непрозрачен. Эти данные о непрозрачности называются альфа-каналом и обычно хранятся после цветовых каналов пикселя.
public static void RectangleFilled_AlphaChannel()
{
// Создать экземпляр документа
var doc = new Document();
// Добавить страницу в коллекцию страниц PDF-файла
var page = doc.Pages.Add();
// Создать экземпляр графики
var graph = new Aspose.Pdf.Drawing.Graph(100, 400);
// Добавить объект графики в коллекцию абзацев экземпляра страницы
page.Paragraphs.Add(graph);
// Создать экземпляр прямоугольника
var rect = new Rectangle(100, 100, 200, 120);
// Указать цвет заливки для объекта графики
rect.GraphInfo.FillColor = Color.FromArgb(128, 244, 180, 0);
// Добавить объект прямоугольника в коллекцию форм объекта графики
graph.Shapes.Add(rect);
// Создать второй объект прямоугольника
var rect1 = new Rectangle(200, 150, 200, 100);
rect1.GraphInfo.FillColor = Color.FromArgb(160, 120, 0, 120);
graph.Shapes.Add(rect1);
// Добавить экземпляр графики в коллекцию абзацев объекта страницы
page.Paragraphs.Add(graph);
// Сохранить PDF-файл
doc.Save(_dataDir + "CreateFilledRectangle_out.pdf");
}
Управление порядком наложения прямоугольников
Aspose.PDF для C++ поддерживает возможность добавления графических объектов (например, графиков, линий, прямоугольников и т.д.) в PDF-документы. При добавлении нескольких экземпляров одного и того же объекта в PDF-файл мы можем управлять их отображением, указывая порядок наложения (Z-Order). Порядок наложения также используется, когда нам нужно отобразить объекты друг на друге.
Следующий фрагмент кода показывает шаги для отображения объектов Прямоугольник друг на друге.
public static void AddRectangleZOrder()
{
// Создать экземпляр класса Document
Document doc1 = new Document();
/// Добавить страницу в коллекцию страниц PDF-файла
Page page1 = doc1.Pages.Add();
// Установить размер страницы PDF
page1.SetPageSize(375, 300);
// Установить левое поле объекта страницы в 0
page1.PageInfo.Margin.Left = 0;
// Установить верхнее поле объекта страницы в 0
page1.PageInfo.Margin.Top = 0;
// Создать новый прямоугольник с цветом Красный, порядком наложения 0 и определенными размерами
AddRectangle(page1, 50, 40, 60, 40, Color.Red, 2);
// Создать новый прямоугольник с цветом Синий, порядком наложения 0 и определенными размерами
AddRectangle(page1, 20, 20, 30, 30, Color.Blue, 1);
// Создать новый прямоугольник с цветом Зеленый, порядком наложения 0 и определенными размерами
AddRectangle(page1, 40, 40, 60, 30, Color.Green, 0);
// Сохранить результирующий PDF-файл
doc1.Save(_dataDir + "ControlRectangleZOrder_out.pdf");
}