1. java使用pdfbox操作pdf文件生成,填充表格数据的内容如何居中设置
为什么要采用替换的方法呢?
读取后经过处理,重新新建一个PDF,把内容写到新的PDF里面就行了,用这些jar可以实现了
我的意思是,你有PDF模板,然后用java读取模板的内容,然后按你的要求对读取的内容进行处理(这里的处理是根据你自己的需求而定,如:从数据库读取数据,然后填充到从模板读取到的表格中),再把处理完后的内容重新写到一个新建的PDF中
2. Java如何使用Java创建一个空的PDF文档
package com.yii;import java.io.IOException;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;// 需要下 apache pdfbox包和apache.commons.loggin乌,下载地址:http://pdfbox.apache.org/download.cgi 和 http://commons.apache.org/proper/commons-logging/download_logging.cgi// 在本示例中下载使用的是:pdfbox-2.0.7.jar // 将下载的pdfbox-2.0.7.jar添加到Eclipse项目依懒库中。// 右键点击:"java_apache_pdf_box"->"Bulid Path"->"Add External Artchives...",然后选笃下载的"pdfbox-2.0.7.jar"和"commons-logging-1.2.jar"文件 public class CreatingEmptyPdf {
public static void main(String args[]) throws IOException {
// Creating PDF document object
PDDocument document = new PDDocument();
// Add an empty page to it
document.addPage(new PDPage());
// Saving the document
document.save("F:/worksp/javaexamples/java_apache_pdf_box/BlankPdf.pdf");
System.out.println("PDF created");
// Closing the document
document.close();
}}
3. java生成pdf几种常见方式
用Spire.PDF for Java来生成PDF文档的效果不错,支持格式化操作比较多,可以参考下 Java 中创建 PDF 文档
4. java 如何读取PDF文件内容
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 输入文本文件名称
String textFile = null;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
int startPage = 1;
// 结束提取页数
int endPage = Integer.MAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
try {
try {
// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
URL url = new URL(pdfFile);
//注意参数已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
// 获取PDF的文件名
String fileName = url.getFile();
// 以原来PDF的名称来命名新产生的txt文件
if (fileName.length() > 4) {
File outputFile = new File(fileName.substring(0, fileName
.length() - 4)
+ ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作为URL装载得到异常则从文件系统装载
//注意参数已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
if (pdfFile.length() > 4) {
textFile = pdfFile.substring(0, pdfFile.length() - 4)
+ ".txt";
}
}
// 文件输入流,写入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper来提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 设置是否排序
stripper.setSortByPosition(sort);
// 设置起始页
stripper.setStartPage(startPage);
// 设置结束页
stripper.setEndPage(endPage);
// 调用PDFTextStripper的writeText提取并输出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盘下的SpringGuide.pdf的内容
pdfReader.readFdf("E://SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
5. java pdfbox 有哪些方法及其作用
按照抽象来理解,方法是实现具体的功能的。
方法:方法名()
属性:属性名
例如:数组中的属性是:length
String中的方法是:length();
6. java中使用pdfbox对pdf文件进行操作时,如何实现插入文本的自动换行操作
刚才我这也在找这个答案……不过现在我写出来了,我的这段代码(通过控制纵坐标来换行):
int rows = 700;
String str = text.getText();
String[] outs = str.split("\n");
PDFdoc = new PDDocument();
PDPage page = new PDPage();
PDFdoc.addPage(page);
PDFont font = PDType1Font.TIMES_ROMAN;
PDPageContentStream contentStream = new PDPageContentStream(PDFdoc, page);
for(int i=0;i<outs.length;i++)
{
if(rows-FontSize>100)
rows -= FontSize;
else
{
contentStream.close();
page = new PDPage();
PDFdoc.addPage(page);
contentStream = new PDPageContentStream(PDFdoc, page);
rows = 700;
}
contentStream.beginText();
contentStream.moveTextPositionByAmount( 100, rows );
contentStream.setFont( font, FontSize );
contentStream.drawString( outs[i] );
contentStream.endText();
}
contentStream.close();
PDFdoc.save(new FileOutputStream(fdoc));
PDFdoc.close();
needSave = false;
setTitle(Program.ProgramName+" - "+fdoc.getName());
注:FontSize是字体大小,我暂时设定行距为0,你可以自己再改改,换行大概就是这个思路了
pdf一页的纵坐标应该是从上到下800到0,保留一定的边距的话从700到100就是整个打印文本的范围。应该是这样的,我只是为了赶我们变态的操作系统实验作业,没有再多去尝试(吐槽:这明显跟操作系统没有任何关系,我们老师还拿这个当作业,难为我们也不是这样难为的……操作系统有难题不布置,偏偏布置这种恶心人的题,最后贴上
普通操作系统实验考试:内存管理,从页表地址到实际物理地址的转换;文艺操作系统实验考试:nachos的结构分析(暂定,欢迎更改);二逼操作系统实验考试:文件操作,pdf文件的读写
)
7. Java PDFBox 能在PDF上添加标签吗
应该是能加东西的,PDFBox 提供了下面的功能:
(1)文本的提取
即在PDF文件里面把文本内容提取出来。
(2) 合并和拆分PDF文档
可以把几个PDF合并成一个PDF文件,也可以把一个PDF文件拆分成多个PDF文件。
(3) 表单填充
从PDF文件的表单中提取数据或者写入数据到PDF表单中。
(4) PDF/A的校验
根据PDF/A ISO 标准校验PDF文档
(5)打印PDF
通过Java的API去打印PDF文件
(6) 把PDF转换成图片
把PDF文件转换成图片
(7) 创建PDF文件
(8) PDF签名
8. java读取pdf判断文字旋转方向
嗯……关于java读取pdf的话,推荐阁下试试pdfbox这个工具,能够支持中文,但是缺点在于不能读取图片形式的pdf,比如将一篇文章照下来,存成图片,做的pdf识别不了。如果阁下想要做图像方面的文字识别的话,可以考虑使用tesseract这个工具,同样识别中文!关于文字的旋转方向……在下的思路是每次将文字进行九十度旋转,并进行识别,能识别出来的时候,计算出旋转角度即可!思路仅供参考,祝阁下学习愉快!