Добавить объект линии в PDF файл

Добавить объект линии

Aspose.PDF для C++ поддерживает возможность добавления графических объектов (например, график, линия, прямоугольник и т.д.) в PDF документы. Вы также можете добавить объект Line, где вы можете указать шаблон штриховки, цвет и другие параметры форматирования для элемента линии.

Следуйте приведенным ниже шагам:

  1. Создайте новый Document PDF

  2. Добавьте Page в коллекцию страниц PDF файла

  3. Создайте экземпляр Graph.

  4. Добавьте объект Graph в коллекцию параграфов экземпляра страницы.

  5. Создайте экземпляр Rectangle.

  6. Установите ширину линии.

  7. Добавьте объект Rectangle в коллекцию фигур объекта Graph.

  8. Сохраните ваш PDF файл.

Следующий фрагмент кода показывает, как добавить объект Rectangle, заполненный цветом.


void AddLineObjectToPDF()
{

String _dataDir("C:\\Samples\\");

// Создайте экземпляр Document

auto document = MakeObject<Document>();


// Добавьте страницу в коллекцию страниц PDF файла

auto page = document->get_Pages()->Add();


// Создайте экземпляр Graph

auto graph = MakeObject<Aspose::Pdf::Drawing::Graph>(100, 400);


// Добавьте объект graph в коллекцию параграфов экземпляра страницы

page->get_Paragraphs()->Add(graph);


// Создайте экземпляр Rectangle

auto line = MakeObject<Aspose::Pdf::Drawing::Line>(new float[] { 100, 100, 200, 100 });



// Укажите цвет заливки для объекта Graph

line->get_GraphInfo()->set_DashArray (MakeArray<int>({ 0, 1, 0 }));

line->get_GraphInfo()->set_DashPhase (1);



// Добавьте объект rectangle в коллекцию фигур объекта Graph

graph->get_Shapes()->Add(line);



// Сохраните PDF файл

document->Save(_dataDir + u"AddLineObject_out.pdf");
}

Add Line

Как добавить пунктирную линию в ваш PDF-документ

void DashLengthInBlackAndDashLengthInWhite()
{

String _dataDir("C:\\Samples\\");

// Создайте экземпляр документа

auto document = MakeObject<Document>();


// Добавьте страницу в коллекцию страниц PDF-файла

auto page = document->get_Pages()->Add();


// Создайте объект рисования с определенными размерами

auto canvas = MakeObject<Aspose::Pdf::Drawing::Graph>(100, 400);

// Добавьте объект рисования в коллекцию абзацев экземпляра страницы

page->get_Paragraphs()->Add(canvas);



// Создайте объект линии

auto line = MakeObject<Aspose::Pdf::Drawing::Line>(MakeArray<float>({ 100, 100, 200, 100 }));

// Установите цвет для объекта линии

line->get_GraphInfo()->set_Color (Aspose::Pdf::Color::get_Red());

// Укажите массив штриха для объекта линии

line->get_GraphInfo()->set_DashArray(MakeArray<int>({ 0, 1, 0 }));

// Установите фазу штриха для экземпляра линии

line->get_GraphInfo()->set_DashPhase(1);

// Добавьте линию в коллекцию фигур объекта рисования

canvas->get_Shapes()->Add(line);


// Сохраните PDF-файл

document->Save(_dataDir + u"DashLength_out.pdf");
}

Давайте проверим результат:

Пунктирная линия

Нарисовать линию через страницу

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

Пожалуйста, посмотрите на следующий фрагмент кода, чтобы выполнить это требование.

void ExampleLineAcrossPage() {

    // Создать экземпляр документа
    String _dataDir("C:\\Samples\\");
    // Создать экземпляр документа
    auto document = MakeObject<Document>();
   
    // Добавить страницу в коллекцию страниц PDF-файла
    auto page = document->get_Pages()->Add();
    // Установить отступы страницы по всем сторонам в 0

    page->get_PageInfo()->get_Margin()->set_Left(0);
    page->get_PageInfo()->get_Margin()->set_Right(0);
    page->get_PageInfo()->get_Margin()->set_Bottom(0);
    page->get_PageInfo()->get_Margin()->set_Top(0);

    // Создать объект графики с шириной и высотой, равными размерам страницы
    auto graph = MakeObject<Aspose::Pdf::Drawing::Graph>(
        page->get_PageInfo()->get_Width(), 
        page->get_PageInfo()->get_Height());

    // Создать первый объект линии, начиная с нижнего левого до верхнего правого угла страницы
    auto line = MakeObject<Aspose::Pdf::Drawing::Line>(
        MakeArray<double>({ 
                      page->get_Rect()->get_LLX(), 0, 
                      page->get_PageInfo()->get_Width(),
                      page->get_Rect()->get_URY() }));

    // Добавить линию в коллекцию фигур объекта графики
    graph->get_Shapes()->Add(line);
    // Нарисовать линию с верхнего левого угла страницы до нижнего правого угла страницы
    auto line2 = MakeObject<Aspose::Pdf::Drawing::Line>( MakeArray<double>({0, 
        page->get_Rect()->get_URY(), page->get_PageInfo()->get_Width(), page->get_Rect()->get_LLX() }));

    // Добавить линию в коллекцию фигур объекта графики
    graph->get_Shapes()->Add(line2);
    // Добавить объект графики в коллекцию абзацев страницы
    page->get_Paragraphs()->Add(graph);

    // Сохранить PDF-файл
    document->Save(_dataDir + u"DrawingLine_out.pdf");
}