将矩形对象添加到PDF文件
添加矩形对象
Aspose.PDF for Java支持在PDF文档中添加图形对象(例如图形、线条、矩形等)。您还可以利用Rectangle对象的功能,填充某种颜色的矩形对象,控制Z轴顺序,添加渐变色填充等。
首先,让我们看看创建矩形对象的可能性。
请按照以下步骤操作:
-
创建一个新的PDF Document
-
将Page添加到PDF文件的页面集合中
-
将文本片段添加到页面实例的段落集合中
-
创建图形实例
-
设置绘图对象的边框
-
创建矩形实例
-
将矩形对象添加到图形对象的形状集合中
-
将图形对象添加到页面实例的段落集合中
-
将文本片段添加到页面实例的段落集合中
-
并保存您的PDF文件
package com.aspose.pdf.examples;
import com.aspose.pdf.BorderInfo;
import com.aspose.pdf.BorderSide;
import com.aspose.pdf.Color;
import com.aspose.pdf.Document;
import com.aspose.pdf.Page;
import com.aspose.pdf.Point;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.drawing.*;
public class WorkingWithGraphs {
private static String _dataDir = "/home/aspose/pdf-examples/Samples/";
public static void ExampleRectangle() {
// 创建一个新的PDF文档
Document pdfDocument = new Document();
// 将页面添加到PDF文件的页面集合中
Page page = pdfDocument.getPages().add();
// 将文本片段添加到页面实例的段落集合中
page.getParagraphs().add(new TextFragment("图形对象之前的文本"));
// 创建图形实例
Graph graph = new Graph(400, 200);
// 设置绘图对象的边框
BorderInfo borderInfo = new BorderInfo(BorderSide.All, Color.getRed());
graph.setBorder(borderInfo);
// 创建矩形实例
Rectangle rect = new Rectangle(10, 10, 380, 180);
// 将矩形对象添加到图形对象的形状集合中
graph.getShapes().add(rect);
// 将图形对象添加到页面实例的段落集合中
page.getParagraphs().add(graph);
// 将文本片段添加到页面实例的段落集合中
page.getParagraphs().add(new TextFragment("图形对象之后的文本"));
// 保存PDF文件
pdfDocument.save(_dataDir + "CreateRectangle_out.pdf");
}
创建填充矩形对象
Aspose.PDF for Java 还提供了用某种颜色填充矩形对象的功能。
以下代码片段展示了如何添加一个用颜色填充的Rectangle对象。
public static void ExampleRectangleFilledSolidColor() {
Document pdfDocument = new Document();
// 将页面添加到 PDF 文件的页面集合中
Page page = pdfDocument.getPages().add();
// 创建 Graph 实例
Graph graph = new Graph(100, 400);
// 将图形对象添加到页面实例的段落集合中
page.getParagraphs().add(graph);
// 创建 Rectangle 实例
Rectangle rect = new Rectangle(100, 100, 200, 120);
// 为 Graph 对象指定填充颜色
rect.getGraphInfo().setFillColor(Color.getRed());
// 将矩形对象添加到 Graph 对象的形状集合中
graph.getShapes().add(rect);
// 保存 PDF 文件
pdfDocument.save(_dataDir + "CreateFilledRectangle_out.pdf");
}
看一下填充实色的矩形结果:
添加渐变填充的绘图
Aspose.PDF for Java 支持向 PDF 文档添加图形对象的功能,有时需要用渐变色填充图形对象。要用渐变色填充图形对象,我们需要使用 gradientAxialShading 对象设置 setPatterColorSpace,如下所示。
以下代码片段展示了如何添加填充渐变色的 Rectangle 对象。
public static void ExampleRectangleFilledGradient() {
Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
Graph graph = new Graph(300, 300);
page.getParagraphs().add(graph);
Rectangle rect = new Rectangle(0, 0, 300, 300);
graph.getShapes().add(rect);
// 指定图形对象的渐变填充颜色并填充
Color gradientFill = new com.aspose.pdf.Color();
rect.getGraphInfo().setFillColor(gradientFill);
GradientAxialShading gradientAxialShading = new GradientAxialShading(Color.getRed(), Color.getBlue());
gradientAxialShading.setStart(new Point(0, 0));
gradientAxialShading.setEnd(new Point(300, 300));
gradientFill.setPatternColorSpace(gradientAxialShading);
// 保存 PDF 文件
pdfDocument.save(_dataDir + "AddDrawingWithGradientFill_out.pdf");
}
用 Alpha 颜色通道创建矩形
Aspose.PDF for Java 支持用特定颜色填充矩形对象。矩形对象也可以有 Alpha 颜色通道,以提供透明的外观。以下代码片段展示了如何添加具有 Alpha 颜色通道的 Rectangle 对象。
图像的像素可以存储关于其不透明度的信息以及颜色值。这允许创建具有透明或半透明区域的图像。
与其使颜色透明,每个像素存储关于其不透明程度的信息。这种不透明数据称为 alpha 通道,通常存储在像素的颜色通道之后。
在我们的代码片段中,我们使用了 com.aspose.pdf.Color 的 fromArgb 方法。 我们需要指定值,其中前3个是颜色分量,范围为0到255,最后一个是透明度级别(alpha通道),由0到1之间的小数指定。
public static void ExampleRectangleAlphaChannelColor() {
Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
// 创建Graph实例
Graph graph = new Graph(100, 400);
// 创建具有特定尺寸的矩形对象
Rectangle rect1 = new Rectangle(100, 100, 200, 100);
Color color1 = Color.fromArgb(128, 224, 0, 224);
rect1.getGraphInfo().setFillColor(color1);
// 将矩形对象添加到Graph实例的形状集合中
graph.getShapes().add(rect1);
// 创建第二个矩形对象
Rectangle rect2 = new Rectangle(200, 150, 200, 100);
Color color2 = Color.fromArgb(64, 0, 224, 224);
rect2.getGraphInfo().setFillColor(color2);
graph.getShapes().add(rect2);
// 将Graph实例添加到页面对象的段落集合中
page.getParagraphs().add(graph);
// 保存PDF文件
pdfDocument.save(_dataDir + "CreateRectangleWithAlphaColor_out.pdf");
}
控制矩形的 Z-Order
Aspose.PDF for Java 支持在 PDF 文档中添加图形对象(例如图形、线条、矩形等)的功能。当在 PDF 文件中添加多个相同对象的实例时,我们可以通过指定 Z-Order 来控制它们的渲染。当我们需要将对象渲染在彼此之上时,也会使用 Z-Order。
以下代码片段展示了在彼此之上渲染 Rectangle 对象的步骤。
public static void Controlling_Z_Order() {
Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
// 创建一个新的矩形,颜色为红色,Z-Order 为 0,具有特定尺寸
AddRectangle(page, 50, 40, 60, 40, Color.getRed(), 2);
// 创建一个新的矩形,颜色为蓝色,Z-Order 为 0,具有特定尺寸
AddRectangle(page, 20, 20, 30, 30, Color.getBlue(), 1);
// 创建一个新的矩形,颜色为绿色,Z-Order 为 0,具有特定尺寸
AddRectangle(page, 40, 40, 60, 30, Color.getGreen(), 0);
// 保存生成的 PDF 文件
pdfDocument.save(_dataDir + "ControlRectangleZOrder_out.pdf");
}