问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java创建pdf文件写入不进去

发布网友 发布时间:2022-05-13 16:34

我来回答

2个回答

热心网友 时间:2023-10-16 09:36

可以用生成PDF报表的Java组件--iText。
具体实现方法如下:1、导入itext-2。1。5。jar跟itextasian-1。5。2。jar两个包到项目里,2、建立一个pdf文件。
一般情况下,iText使用在有以下一个要求的项目中:1。内容无法提前利用:取决于用户的输入或实时的数据库信息。2。由于内容,页面过多,PDF文档不能手动生成。3。文档需在无人参与,批处理模式下自动创建。4。内容被定制或个性化。

热心网友 时间:2023-10-16 09:37

通常需要用到用于读、写、编辑PDF文件的库,你可以参考下面采用spire.pdf.jar来创建PDF的步骤及方法:

首先需要引入jar包。具体的引入方法可以自行百度搜索。

创建PdfDocument类的对象,并通过PdfDocument.getPages().add()方法添加页码。

定义标题文字。

创建PdfSolidBrush 画刷、PdfTrueTypeFont 字体、PdfStringFormat字符串、Rectangle2D等对象,用于指定字符串绘制效果、字体、格式、绘制区域等。

通过PdfPageBase.getCanvas().drawString(body, font2, brush2, rect, format2)方法将内容绘制到PDF页面。

下面附上详细的代码demo示例:

import com.spire.pdf.*;

import com.spire.pdf.graphics.*;

import java.awt.*;

import java.awt.geom.*;

import java.io.*;

public class CreatePdfDocumentInJava {

public static void main(String[] args) throws FileNotFoundException, IOException {

//创建PdfDocument对象
PdfDocument doc = new PdfDocument();

//添加一页
PdfPageBase page = doc.getPages().add();

//标题文字
String title = "Java基础语法";

//创建单色画刷对象
PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));

//创建TrueType字体对象
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 14), true);
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 10), true);

//创建PdfStringFormat对象
PdfStringFormat format1 = new PdfStringFormat();
format1.setAlignment(PdfTextAlignment.Center);//设置文字居中

//使用drawString方法绘制标题文字
page.getCanvas().drawString(title, font1, brush1, new Point2D.Float((float) page.getActualBounds(true).getWidth() / 2, 0), format1);

//从txt文件读取内容到字符串
String body = readFileToString("C:\\Users\\Administrator\\Desktop\\bodyText.txt");

//创建PdfStringFormat对象
PdfStringFormat format2 = new PdfStringFormat();
format2.setParagraphIndent(20);//设置段首缩进

//创建Rectangle2D对象
Rectangle2D.Float rect = new Rectangle2D.Float(0, 30, (float) page.getActualBounds(true).getWidth(), (float) page.getActualBounds(true).getHeight());

//使用drawString方法在矩形区域绘制主体文字
page.getCanvas().drawString(body, font2, brush2, rect, format2);

//保存到PDF文档
doc.saveToFile("ouput.pdf");
}

//自定义方法读取txt文件内容到字符串
private static String readFileToString(String filepath) throws FileNotFoundException, IOException {

StringBuilder sb = new StringBuilder();
String s = "";
BufferedReader br = new BufferedReader(new FileReader(filepath));

while ((s = br.readLine()) != null) {
sb.append(s + "\n");
}
br.close();
String str = sb.toString();
return str;
}

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这图片原图或者主角 出自哪一边电影或者电视剧 哪位大神知道这张图原版在吗?求原版。。。 在word中加下划线时第一次出现一条下划线第二次怎么就出现两条... 诛仙2资料站里的宠物展示能在npc买到吗 求一些诛仙2中的可以变为人形的宠物名字 诛仙2 神域的神农殿里,这是什么东西 诛仙2宠物元神问题 诛仙2 商城 中 宠物元神 怎么比 宠物 还贵啊?宠物元神是干什么的啊... 电热水器怎么安固定花洒 猛鬼夜惊魂剧情介绍 java中怎么利用struts2上传多个pdf文件 excel表格里怎么根据名称自动调取另一个表格里的数据自动插入行中? 7001是什么端口 河南周口川汇区2022年2月的退休工资到3月30号了还没发放?是怎么回事 苏州2022年2月份养老金发放时间 闪电盒子怎么无响应了? 光电效应为什么说明了光的粒子性 光电效应现象说明光具有粒子性,光子具有能量。。 康普顿效应说明光具有粒子性,光子具有能量。。 2张SIM卡都有打电话话费会变多吗 闪电盒子里面下东西会耗手机内存吗 一个月话费60到70多,用哪种卡省钱? 为什么电信卡13380642182去的话费太多了? 我妈妈电信的卡每个月话费都挺多了,攒了很多的积分,这个积分可以用在哪里? 闪电盒子如何添加其他应用赚取闪电币 那个手机话费卡 话费多又便宜 老人用的 流量少的没事 光电效应怎么说明光具有粒子性由书上可得,有两个现象 请问移动什么卡话费多,流量少 下列现象中,能够表明光具有粒子性的是(  )A.黑体辐射B.光电效应C.光的干涉D.光的衍 我妈妈电信的卡每个月话费都挺多了,攒了很多的积分,这个积分可以兑换什么? 下列说法错误的是 A.光电效应说明光具有粒子性 B.电子束衍射实验说明电子具有粒子性 C 图片像素怎么调整 右眼皮一直跳动,意味着什么? 右眼跳了动有什么预兆? 右眼一直跳动有什么预兆 这几天右眼一直跳动。 具体说明什么呢! 考研英语85分相当于雅思多少分 右眼跳,是什么预兆? 英语一相当于雅思什么水平 考研英语一78分相当于雅思多少分? 考研英语一73分对应雅思大概多少分 考研83分,雅思能考多少分 雅思成绩和考研究生英语成绩的水平换算 相当于雅思多少? 研究生考试 英语统考50分相当于雅思的几分呢 考研70分与雅思7.5分 雅思7.5的话如果要去考考研英语能考多少分? 如何提高物业管理企业盈利性的探讨 业主和物业服务企业的经营管理目标有何不同 五棵松篮球场可容纳多少观众? 五棵松篮球馆命名的由来