Spire.Cloud.SDK for Java提供了pdfPathApi接口可用于在PDF文档中绘制形状(或图形),如绘制线条形状drawLine()、绘制矩形形状drawRectanglef(),下面将介绍如何通过Java示例和步骤来实现:
一、导入jar文件。(有2种方式)
创建Maven项目程序,通过maven仓库下载导入。以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下:
<repositories> <repository> <id>com.e-iceblue</id> <name>cloud</name> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId> cloud </groupId> <artifactId>spire.cloud.sdk</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId> com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId> com.squareup.okhttp</groupId> <artifactId>logging-interceptor</artifactId> <version>2.7.5</version> </dependency> <dependency> <groupId> com.squareup.okhttp </groupId> <artifactId>okhttp</artifactId> <version>2.7.5</version> </dependency> <dependency> <groupId> com.squareup.okio </groupId> <artifactId>okio</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId> io.gsonfire</groupId> <artifactId>gson-fire</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.18</version> </dependency> <dependency> <groupId> org.threeten </groupId> <artifactId>threetenbp</artifactId> <version>1.3.5</version> </dependency> </dependencies>
完成配置后,点击“Import Changes” 即可导入所有需要的jar文件。如果使用的是Eclipse,可参考https://cloud.e-iceblue.cn/index.php/tutorials/cloud/webapi/java/maven-spire-cloud-web-api的导入方法。
导入结果:
二、登录冰蓝云账号,创建文件夹,上传文档
三、创建应用程序,获取App ID及App Key
四、Java代码示例
【示例1】绘制线条形状
import spire.cloud.pdf.sdk.ApiException; import spire.cloud.pdf.sdk.Configuration; import spire.cloud.pdf.sdk.api.PdfPathApi; public class DrawLine { //配置账号信息 static String appId = "App ID"; static String appKey = "App Key"; static String baseUrl= "https://api.e-iceblue.cn"; static Configuration configuration = new Configuration(appId, appKey, baseUrl); static PdfPathApi pdfPathApi = new PdfPathApi(configuration); public static void main(String[] args) throws ApiException { String name = "samplefile.pdf";//用于测试的PDF源文档 String outPath = "output/DrawLine.pdf";//结果文档路径(保存在冰蓝云端output文件夹下) int pageNumber = 1;//指定需要绘制线段的PDF页面 float firstPointfX = 100;//指定线段起始点坐标 float firstPointfY = 150; float secondPointfX = 400; float secondPointfY = 150; String folder = "input";//源文档输在文件夹 String storage = null;//冰蓝云提供的2G免费云存储空间 String password = null;//源文档密码(无密码设置为null) //调用方法绘制线条 pdfPathApi.drawLine(name, outPath, pageNumber, firstPointfX, firstPointfY, secondPointfX, secondPointfY, folder, storage, password); } }
线条绘制效果:
【示例2】绘制矩形形状
import spire.cloud.pdf.sdk.ApiException; import spire.cloud.pdf.sdk.Configuration; import spire.cloud.pdf.sdk.api.PdfPathApi; import spire.cloud.pdf.sdk.model.RectangleF; public class DrawRec { //配置账号信息 static String appId = "App ID"; static String appKey = "App Key"; static String baseUrl= "https://api.e-iceblue.cn"; static Configuration configuration = new Configuration(appId, appKey, baseUrl); static PdfPathApi pdfPathApi = new PdfPathApi(configuration); public static void main(String[] args) throws ApiException { String name = "samplefile1.pdf";//加载需要添加形状的PDF源文档 String outPath = "output/DrawRectanglef.pdf";//指定结果文档路径(保存在冰蓝云端output文件夹下) int pageNumber = 1;//指定需要添加形状的PDF页面 RectangleF rect = new RectangleF();//创建RectangleF类的对象 rect.setX(100f);//指定形状坐标 rect.setY(100f); rect.setWidth(350f);//指定形状宽度、高度 rect.setHeight(60f); String folder = "input";//源文档所在文件夹 String storage = null;//冰蓝云提供的2G免费存储空间 String password = null;//源文档密码(无密码设置为null) //调用方法绘制矩形 pdfPathApi.drawRectanglef(name, outPath, pageNumber, rect, folder, storage, password); } }
矩形绘制效果:
到此这篇关于Java 基于Spire.Cloud.SDK for Java在PDF中绘制形状的文章就介绍到这了,更多相关Java 在PDF中绘制形状内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
我正在尝试生成随机大小的椭圆,并将其绘制到地图上(只是一个二维瓷砖阵列)。在大多数情况下,这是可行的,然而,当房间比它更宽时,它似乎会切断墙角。 下面是我绘制椭圆的代码。基本上是取一个矩形并在其中绘制椭圆。 我这样称呼这种方法。在随机位置生成随机大小的矩形,然后创建墙砖的椭圆,然后用地砖覆盖内侧墙砖。 还有一个额外的问题,有人知道我怎么才能不把1块瓷砖放在椭圆的顶部/底部吗?
问题内容: 在以下将节点映射到颜色的字典中,我想绘制结果图,同时根据其颜色在图中的节点上聚类。也就是说,如果节点和 有深红色,我希望他们下一步彼此在图表上显示。 我的字典如下: 具有以下边缘(以上字典中的键): 如果我尝试正常绘制图形,则会得到随机位置: 有没有一种方法可以绘制此图,并根据nodesWithGroup词典中的值对节点进行分组。我尝试应用此问题中描述的方法,但是我不知道如何应用逻辑。
所以我在只用线绘制形状时遇到了一个大问题。假设我从屏幕中间的一个点开始画一条线,然后以100个像素的距离向前画,角度为0,然后我用角度72度画另一条相同长度的线,以此类推,直到360度。它应该给我一个完美的五边形,一条线结束,另一条线从那个点开始,但是线在末端不相交,它非常适合角度为0/90/180/270的正方形,但我需要让它适用于每个形状,甚至是圆。我用这个东西来计算: 其中_cosinuse
问题内容: 我创建了此代码,当我 在JForm上选择单选按钮时,该代码应该绘制某些内容,我已经使用NetBeans创建了GUI。 当我选择单选按钮时,没有任何反应。 一段时间以来,我一直在试图找出问题所在,但仍然找不到解决方案,这就是我来 这里的原因。如果有人发现错误,我将不胜感激。 问题答案: 我在您的代码中看到了一些问题: 您正在扩展JFrame,您不应该这样做,因为可以将其读DrawShap
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我想用Java绘制图形(节点和边)。但是,由于我不知道该怎么做,因此在开始之前我想寻求一些建议。 我应该怎么做? 使用Graphics2D包,对吗? 节点的标签怎么样?我应该使用诸如drawString之类的东西并手动处理所有“
我是java图形的新手,很难掌握从一个方法(绘制组件())绘制所有图形的整个概念。我只是很好奇,看看我们是否可以在绘制组件之外绘制图形。这可能吗?是否可以在main方法中写一行,如:fillRect(100,100, 500,400);并让它绘制一个矩形?如果可能,是否根据Java常规? 基本上,我想问的是,你是否可以在paintComponent类之外绘制图形,这是常规的吗。