java操作pdf
❶ java 操作PDF,商用,用什麼技術好一點
多數的公司都是使用這個 iText ,你可以使用一下,開源的
通過iText,你可以對PDF文件進行組裝、擴展、提取、切割等等多方面交互性的操作。它能夠是符合大多數ISO PDF標准以及數字簽名標准(PAdES)與 安全發票(ZUGFeRD)。
省時間
iText能夠幫你自動完成一些繁瑣事項,比如每日例行記錄、發票處理、任務歸檔等等,讓你更關注當下最重要的實際業務工作。
強控制
通過iText的開源API,你可以在整個過程中毫無阻礙地進行文檔創作,在任何細節上,都可以構建屬於你自己的風格。
高質量
無論何時,無論何種機器,無論何種數據來源,通過iText,你構建的文檔都可以保證相當長時間的易讀性與易用性。
❷ java怎麼輸出pdf格式的文件
java導出pdf需要用到iText庫,iText是著名的開放源碼的站點sourceforge一個項目,是用於生成PDF文檔的一個java類庫。通過iText不僅可以生成PDF或rtf
的文檔,而且可以將XML、Html文件轉化為PDF文件。
iText的安裝非常方便,下載iText.jar文件後,只需要在系統的CLASSPATH中加入iText.jar的路徑,在程序中就可以使用
iText類庫了。
代碼如下:
public class createPdf {
//自己做的一個簡單例子,中間有圖片之類的
//先建立Document對象:相對應的 這個版本的jar引入的是com.lowagie.text.Document
Document document = new Document(PageSize.A4, 36.0F, 36.0F, 36.0F, 36.0F);
public void getPDFdemo() throws DocumentException, IOException{
//這個導出用的是 iTextAsian.jar 和iText-2.1.3.jar 屬於比較老的方法。 具體下在地址見:
//首先
//字體的定義:這里用的是自帶的jar裡面的字體
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
// 當然你也可以用你電腦裡面帶的字體庫
//BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
//定義字體 注意在最新的包裡面 顏色是封裝的
Font fontChinese8 = new Font(bfChinese, 10.0F, 0, new Color(59, 54, 54));
//生成pdf的第一個步驟:
//保存本地指定路徑
saveLocal();
document.open();
ByteArrayOutputStream ba = new ByteArrayOutputStream();
// PdfWriter writer = PdfWriter.getInstance(document, ba);
document.open();
//獲取此編譯的文件路徑
String path = this.getClass().getClassLoader().getResource("").getPath();
//獲取根路徑
String filePath = path.substring(1, path.length()-15);
//獲取圖片路徑 找到你需要往pdf上生成的圖片
//這里根據自己的獲取的路徑寫 只要找到圖片位置就可以
String picPath = filePath +"\\WebContent" +"\\images\\";
//往PDF中添加段落
Paragraph pHeader = new Paragraph();
pHeader.add(new Paragraph(" 你要生成文字寫這里", new Font(bfChinese, 8.0F, 1)));
//pHeader.add(new Paragraph("文字", 字體 可以自己寫 也可以用fontChinese8 之前定義好的 );
document.add(pHeader);//在文檔中加入你寫的內容
//獲取圖片
Image img2 = Image.getInstance(picPath +"ccf-stamp-new.png");
//定義圖片在文檔中顯示的絕對位置
img2.scaleAbsolute(137.0F, 140.0F);
img2.setAbsolutePosition(330.0F, 37.0F);
//將圖片添加到文檔中
document.add(img2);
//關閉文檔
document.close();
/*//設置文檔保存的文件名
response.setHeader("Content-
disposition", "attachment;filename=\""+ new String(("CCF會員資格確認
函.pdf").getBytes("GBK"),"ISO-8859-1") + "\"");
//設置類型
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();*/
}
public static void main(String[]args) throws DocumentException, IOException{
createPdf pdf= new createPdf();
pdf.getPDFdemo();
}
//指定一個文件進行保存 這里吧文件保存到D盤的text.pdf
public void saveLocal() throws IOException, DocumentException{
//直接生成PDF 制定生成到D盤test.pdf
File file = new File("D:\\text2.pdf");
file.createNewFile();
PdfWriter.getInstance(document, new FileOutputStream(file));
}
}
❸ 如何使用JAVA代碼壓縮PDF文件
用java代碼壓縮應用到程序了,代碼一般是比較復雜的,對pdf文件的mate標簽優化,這類標簽包括三類,pdf文件不是網頁就是個文件,何況我們可以用pdf壓縮工具壓縮,下面有個解決方法,樓主可以做參照。
1:點擊打開工具,打開主頁面上有三個功能進行選擇,我們選擇pdf文件壓縮。
❹ Java如何使用Java向PDF頁面中添加文本
①建立com.lowagie.text.Document對象的實例。
Document document = new Document();
②建立一個書寫器(Writer)與document對象關聯,通過書寫器(Writer)可以將文檔寫入到磁碟中。
PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"));
③打開文檔。
document.open();
④向文檔中添加內容。
document.add(new Paragraph("Hello World"));
⑤關閉文檔。
document.close();
通過上面的5個步驟,就能產生一個Helloworld.PDF的文件,文件內容為"Hello World"。
❺ 怎麼用java讀取pdf文件內容
你可以把pdf轉成word在進行讀取
推薦使用轉轉大師pdf轉word轉換器,免費含數咐的在線工具
網路搜索下,在線免費轉換就行了,不談純用下載注冊,很方便畢空
❻ JAVA操作PDF的幾個問題,是高手的進。
1、禪團我不清楚,沒做過逗襲碧相關東西
2、通過js可以實現禁止右鍵行為
3、頁面無法列印好像實現不山舉了,因為瀏覽器有列印功能會將頁面列印出來
❼ Java操作pdf表格數據
用Java簡單的讀取pdf文件中的數據:
第一步:下載PDFBox-0.7.2.jar。提供一個下載地址: http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解壓後,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路徑下。(我把源碼以及jar包都放到下面的附件里,方面你的使用。)
第二步:寫個簡單的讀取pdf文件的程序。(PdfReader.java)
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();
}
}
}
這樣就簡單的完成了從pdf中讀取數據了。在你的pdf文件所在的目錄下生成一個同名的txt文件。
❽ java中poi如何將word文檔轉換成pdf
在Java中使用POI將Word文碧卜檔轉換為PDF需要以下步驟:
添加POI和余陵相關的依賴庫悔毀穗,例如:poi-ooxml、poi-ooxml-schemas和itextpdf等。
載入Word文檔:
java
InputStream inputStream = new FileInputStream("test.docx");
XWPFDocument document = new XWPFDocument(inputStream);
創建PDF輸出流:
java
OutputStream outputStream = new FileOutputStream("test.pdf");
PdfOptions options = PdfOptions.create();
使用POI中提供的方法將Word文檔轉換為PDF:
scss
PdfConverter.getInstance().convert(document, outputStream, options);
關閉輸入輸出流:
go
Copy code
inputStream.close();
outputStream.close();
完整代碼示例:
java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.converter.pdf.PdfConverter;
public class WordToPDFConverter {
public static void main(String[] args) throws Exception {
InputStream inputStream = new FileInputStream("test.docx");
XWPFDocument document = new XWPFDocument(inputStream);
OutputStream outputStream = new FileOutputStream("test.pdf");
PdfOptions options = PdfOptions.create();
PdfConverter.getInstance().convert(document, outputStream, options);
inputStream.close();
outputStream.close();
}
}
請注意,該方法依賴於操作系統上安裝的MS Office軟體,因此需要確保系統上安裝了MS Office並配置了正確的環境變數。
❾ java中Pdfpcell方法自動換行行間距
在java中使用iText庫中的PdfPCell類可以實現PDF文檔中單元梁虧格的操作。若要設置伍渣晌PdfPCell中文本的自動換行和行間距,可以使用以下方法:
使用setNoWrap()方法設置單元格中文本是否自動換行。將該方法設置為false即可實現自動換行。
使用setLeading()方法設置行間距。該方法接收一個float類型的參數,表示行間距的值。
示例代碼如下:
PdfPCell cell = new PdfPCell();
cell.setNoWrap(false);
cell.setLeading(20f,0f);
在上面的代碼中,setNoWrap設置為false表示自腔鋒動換行,setLeading(20f,0f)表示設置行間距為20f,0f為前間距。
❿ java解析pdf文字順序不對
修復你的PDF軟體或者調整頁面順序。
java解析pdf獲取pdf中內容信皮運前息:
第一種 使用開源組織提供的開源框架 pdfboxapi ; https://pdfbox.apache.org/
特點:免費,功能強大,解析中文或許會存在亂碼,默認格式有點亂,沒有國產解析的那麼美化。
想要按行讀取:可以按照指定的模板,對pdf進行修改添加刪除等操作,總之操作很騷,很強大。
1.pdfbox 需要帶入依賴。
2.代碼。
第二種使用國產的框架 Spire.PDF包含兩種版本。
1 免費版。
https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html
友情提示: 免費版有 10 頁的頁數輸出限制,在輸出結果文檔時只能輸出前10頁。將 PDF 文檔轉換為圖片、Word、HTML、XPS等格式時,僅支持轉換前 10 頁。如超出限制,可升級到商業版,我們僅對免費版進行不定期維護。
2 商業版本。
https://www.e-iceblue.cn/Introce/Spire-PDF-JAVA.html。
api。
http://e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html。
特點:商業版本收費,免費版本有限制,可供開發人員調試,解析格式友好,解析結果是按照行顯示,對悄拿pdf 圖形 ,水印 ,文本, 條形碼等添加增刪改操作,總之個人感覺比pdfbox順手,但就是收費啊,誰讓咱公司沒錢呢。
主要功能:
只需 Free Spire.PDF for Java,無需 Adobe Acrobat。
Free Spire.PDF for Java 是一款完全獨立的 PDF 類庫。它的運行環境無需安裝 Adobe Acrobat 或其他任何第三方組件。
多樣化的PDF文檔操作功能。
Free Spire.PDF for Java 支持畫文本、圖片、表格、條形碼、形狀到 PDF,提取文本和圖片,創建、填充和刪除 PDF 表單,添加文本/圖片水印到 PDF,添加、更新和刪除 PDF 書簽,操作超鏈接、附件和注釋,以及添加圖片/文本印章到 PDF 等。
文檔信息設置。
Free Spire.PDF for Java 支持設置 PDF 文檔信息,例如文檔屬性設置,偏好燃清設置(頁面方向,頁面大小,縮放比例等)。
高質量的文檔轉換功能。
Free Spire.PDF for Java 支持將 PDF 文檔高質量地轉換為 Word、HTML、XPS、圖片、SVG 和 PDF/A 格式,以及將 XPS 文檔高質量地轉換為 PDF 格式。
文檔安全性設置。
Free Spire.PDF for Java 支持給 PDF 文檔添加和驗證數字簽名,加密和解密 PDF 文檔,修改 PDF 文檔的安全許可權,以及檢測簽名後的 PDF 文檔是否被修改。
易於集成。
開發人員可以輕易地將 Free Spire.PDF for Java 集成到 Java(J2SE和J2EE)應用程序中。