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這個工具,同樣識別中文!關於文字的旋轉方向……在下的思路是每次將文字進行九十度旋轉,並進行識別,能識別出來的時候,計算出旋轉角度即可!思路僅供參考,祝閣下學習愉快!