Pull to refresh

Java рисует фигуры в документах PDF

Когда я недавно редактировал документ PDF, мне нужно было добавить в документ некоторые графические объекты, такие как многоугольники, прямоугольники, эллипсы и т. Д. После поиска информации и тестирования я обнаружил, что Free Spire PDF для Java может помочь мне в приложениях Java. Завершите эту операцию.

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

Конфигурация среды


Установите бесплатный пакет Spire.Pdf.jar через хранилище Maven и настройте код файла pom.xml следующим образом:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>2.6.3</version>
    </dependency>
</dependencies>

Java-код


import com.spire.pdf.*;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class DrawShapes {
    public static void main(String[]args){
        //Создать PDF документ и добавить страницу
        PdfDocument pdf = new PdfDocument();
        PdfPageBase page = pdf.appendPage();

        //Создать кисти
        PdfPen pen =new PdfPen(new PdfRGBColor(Color.black),0.3);
        PdfBrush brush= PdfBrushes.getGreenYellow();

        //Нарисовать прямоугольник
        Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);
        PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rect1,new PdfRGBColor(Color.pink),new PdfRGBColor(Color.YELLOW),PdfLinearGradientMode.Horizontal);
        page.getCanvas().drawRectangle(linearGradientBrush, rect1);

        //Рисовать эллипс
        Point centerStart= new Point(205,45);
        Point centerEnd= new Point(205,45);
        PdfRadialGradientBrush radialGradientBrush = new PdfRadialGradientBrush(centerStart,0,centerEnd,60,new PdfRGBColor(Color.white),new PdfRGBColor(Color.cyan));
        Rectangle2D.Float rect2= new Rectangle2D.Float(180, 20, 50, 50);
        page.getCanvas().drawEllipse(radialGradientBrush,rect2);

        //Рисовать многоугольник
        Point p1=new Point(290,70);
        Point p2=new Point(310,45);
        Point p3=new Point(325,60);
        Point p4=new Point(340,20);
        Point p5=new Point(370,70);
        Point[] points = {p1, p2, p3, p4, p5};
        page.getCanvas().drawPolygon(pen,brush, points);

        //Нарисовать дугу
        float startAngle = 0;
        float sweepAngle = 270;
        Rectangle2D.Float rect3= new Rectangle2D.Float(0, 110, 50, 50);
        page.getCanvas().drawArc(pen, rect3, startAngle, sweepAngle);

        //Рисовать сектор
        Rectangle2D.Float rect4= new Rectangle2D.Float(70, 110, 50, 50);
        page.getCanvas().drawPie(pen, rect4, startAngle, sweepAngle);

        //Нарисуйте две прямые линии, пересекающие перпендикулярно
        Point pStart1=new Point(205,110);
        Point pEnd1=new Point(205,160);
        page.getCanvas().drawLine(pen, pStart1, pEnd1);
        Point pStart2=new Point(180,135);
        Point pEnd2=new Point(230,135);
        page.getCanvas().drawLine(pen, pStart2, pEnd2);

        //Нарисуйте кривую Безье
        Point startPoint = new Point(290, 135);
        Point firstControlPoint = new Point(330, 70);
        Point secondControlPoint = new Point(330, 200);
        Point endPoint = new Point(370, 135);
        page.getCanvas().drawBezier(pen, startPoint, firstControlPoint, secondControlPoint, endPoint);

        //Сохранить документ
        pdf.saveToFile("DrawShapes.pdf",FileFormat.PDF);
    }
}

image
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.