導航:首頁 > 文檔加密 > java替換pdf

java替換pdf

發布時間:2022-08-15 19:28:12

❶ 在linux環境下,java怎麼實現從word格式轉換為pdf格式

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
* @author XuMing Li
*
* @version 1.00, 2007-4-9
*
*/
public class D2P {
private ActiveXComponent wordCom = null;

private Object wordDoc = null;

private final Variant False = new Variant(false);

private final Variant True = new Variant(true);

/**
* 打開word文檔
*
* @param filePath
* word文檔
* @return 返回word文檔對象
*/
public boolean openWord(String filePath) {
//建立ActiveX部件
wordCom = new ActiveXComponent( "Word.Application ");

try {
//返回wrdCom.Documents的Dispatch
Dispatch wrdDocs = wordCom.getProperty( "Documents ").toDispatch();
//調用wrdCom.Documents.Open方法打開指定的word文檔,返回wordDoc
wordDoc = Dispatch.invoke(wrdDocs, "Open ", Dispatch.Method,
new Object[] { filePath }, new int[1]).toDispatch();
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}

/**
* 關閉word文檔
*/
public void closeWord() {
//關閉word文件
wordCom.invoke( "Quit ", new Variant[] {});
}

/**
* * 將word文檔列印為PS文件後,使用Distiller將PS文件轉換為PDF文件 *
*
* @param sourceFilePath
* 源文件路徑 *
* @param destinPSFilePath
* 首先生成的PS文件路徑 *
* @param destinPDFFilePath
* 生成PDF文件路徑
*/
public void docToPDF(String sourceFilePath, String destinPSFilePath,
String destinPDFFilePath) {
if (!openWord(sourceFilePath)) {
closeWord();
return;
}
//建立Adobe Distiller的com對象
ActiveXComponent distiller = new ActiveXComponent(
"PDFDistiller.PDFDistiller.1 ");
try {
//設置當前使用的列印機,我的Adobe Distiller列印機名字為 "Adobe PDF "
wordCom.setProperty( "ActivePrinter ", new Variant( "Adobe PDF "));
//設置printout的參數,將word文檔列印為postscript文檔。目前只使用了前5個參數,如果要使用更多的話可以參考MSDN的office開發相關api
//是否在後台運行
Variant Background = False;
//是否追加列印
Variant Append = False;
//列印所有文檔
int wdPrintAllDocument = 0;
Variant Range = new Variant(wdPrintAllDocument);
//輸出的postscript文件的路徑
Variant OutputFileName = new Variant(destinPSFilePath);

Dispatch.callN((Dispatch) wordDoc, "PrintOut ", new Variant[] {
Background, Append, Range, OutputFileName });
System.out.println( "由word文檔列印為ps文檔成功! ");
//調用Distiller對象的FileToPDF方法所用的參數,詳細內容參考Distiller Api手冊
//作為輸入的ps文檔路徑
Variant inputPostScriptFilePath = new Variant(destinPSFilePath);
//作為輸出的pdf文檔的路徑
Variant outputPDFFilePath = new Variant(destinPDFFilePath);
//定義FileToPDF方法要使用adobe pdf設置文件的路徑,在這里沒有賦值表示並不使用pdf配置文件
Variant PDFOption = new Variant( " ");
//調用FileToPDF方法將ps文檔轉換為pdf文檔
Dispatch.callN(distiller, "FileToPDF ", new Variant[] {
inputPostScriptFilePath, outputPDFFilePath, PDFOption });
System.out.println( "由ps文檔轉換為pdf文檔成功! ");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeWord();
}
}

public static void main(String[] argv) {
D2P d2p = new D2P();
// d2p.openWord( "c:/12.doc ");
// d2p.callWordMacro( "c:/12.docc ", "MyWordMacro ",
// new String[] { "這是調用word宏的測試程序 " });
d2p.docToPDF( "d:/12.doc ", "c:/1p.ps ", "c:/1p.pdf ");
}
}

❷ java怎麼將word文檔轉換為pdf

如何將word文件轉換成pdf文件_網路經驗 http://jingyan..com/article/fcb5aff7ef1969edaa4a71b7.html

❸ JAVA實現讀取pdf模板,替換內容後生成新pdf文檔

為什麼要採用替換的方法呢?
讀取後經過處理,重新新建一個PDF,把內容寫到新的PDF裡面就行了,用這些jar可以實現了

我的意思是,你有PDF模板,然後用java讀取模板的內容,然後按你的要求對讀取的內容進行處理(這里的處理是根據你自己的需求而定,如:從資料庫讀取數據,然後填充到從模板讀取到的表格中),再把處理完後的內容重新寫到一個新建的PDF中

❹ 使用freemarker生成的word文檔,如何利用java代碼將其轉換為pdf格式

首先,通過xml模板可以將基本上所有的格式都事先鎖定,包括頁碼和分頁,只要你事先預設好就能夠通過freemarker實現生成,接下來就是我這個問題了,目錄怎麼解決,下面是解決思路:1:目錄的內容可以根據之前其他的內容一樣解決,通過XML模板預先設置好,2:目錄的頁碼已經研究過是不能直接通過xml模板實現動態對應了(至少我沒搞定0.0)3:由於不能夠一步到位,我採取了在模板中預留了一頁空白頁,只留了抬頭的目錄兩個字,然後通過查詢目錄二字進行目錄的生成,這個功能也是我剛剛折騰出來的0.0目前還沒測試能不能用模板生成目錄後再更新目錄0.0,不過想想可以直接生成目錄應該就不用這么麻煩了,至於word生成後的修改0.0我覺得還是以後再說吧..整體來說應該還算完美解決了,代碼我就不在這貼出來了~雖然中間折騰了半天走了半天彎路~講道理還是用的jacob來實現的。。

❺ java pptx 轉換pdf

用jacob轉doc和xls能成功,如果你轉pptx是拷貝doc或者xls的代碼,那麼就會報錯,中間有兩個細節的地方要注意,有區別:
setProperty("Visible", new Variant(true)); doc和xls是false,pptx要改為true
下面這兩段代碼要刪除
Variant f = new Variant(false);
Dispatch.call(xls, "Close", f);

❻ java itext轉換PDF

public void GenerateAllParts() {
Document document = new Document();

try {
PdfWriter.getInstance(document, new FileOutputStream("d:\\all.pdf"));

// 生成字體
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
// 標題字體
Font f30 = new Font(bfChinese, 30, Font.NORMAL, Color.BLACK);
// 正文字體
Font f12 = new Font(bfChinese, 12, Font.NORMAL, Color.BLACK);
Font f6 = new Font(bfChinese, 6, Font.NORMAL, Color.BLACK);
Font f8 = new Font(bfChinese, 8, Font.NORMAL, Color.BLACK);

document.open();

// 標題
document.add(new Paragraph("報表實例", f30));
// 換行
document.add(new Chunk("\n\n"));
//
document.add(
new Paragraph(
new Chunk(".......................點擊查看報表", f12)
.setLocalGoto("table")));
// 換行
document.add(new Chunk("\n\n"));
document.add(
new Paragraph(
new Chunk(".......................點擊查看圖片", f12)
.setLocalGoto("image")));
document.add(new Chunk("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"));

///////////////////////////////////////////////////
// 報表位置
document.add(new Chunk("報表實例", f12).setLocalDestination("table"));
// 添加table實例
PdfPTable table = new PdfPTable(5);
table.setWidthPercentage(100);
table.setHorizontalAlignment(PdfPTable.ALIGN_LEFT);
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new Color(213, 141, 69));
cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

// 表格標題
cell.setPhrase(new Paragraph("標題一", f8));
table.addCell(cell);
cell.setPhrase(new Paragraph("標題二", f8));
table.addCell(cell);
cell.setPhrase(new Paragraph("標題三", f8));
table.addCell(cell);
cell.setPhrase(new Paragraph("標題四", f8));
table.addCell(cell);
cell.setPhrase(new Paragraph("標題五", f8));
table.addCell(cell);

// 表格數據
PdfPCell newcell = new PdfPCell();
newcell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
newcell.setPhrase(new Paragraph("數據一", f8));
table.addCell(newcell);
newcell.setPhrase(new Paragraph("數據二", f8));
table.addCell(newcell);
newcell.setPhrase(new Paragraph("數據三", f8));
table.addCell(newcell);
newcell.setPhrase(new Paragraph("數據四", f8));
table.addCell(newcell);
newcell.setPhrase(new Paragraph("數據五", f8));
table.addCell(newcell);

document.add(table);
////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////
// 添加連接
document.add(new Chunk("圖片實例", f12).setLocalDestination("image"));
Image jpg = Image.getInstance("d:\\3.jpg");
document.add(jpg);
//////////////////////////////////////////////////////////

document.close();
} catch (Exception e) {
// TODO: handle exception
}
}

❼ 如何時候使用java編寫程序將PDF文件轉換為

用Adobe Acrobat才是最好的選擇。該軟體不但轉換的速度快,還也可以逆轉換。兼容的格式多,而且可以在該軟體里修改、編輯等操作。

❽ java將html文件轉成pdf

核心代碼如下
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;

public class App {
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='hmkcode.com'>hmkcode.com</a>";

public static void main( String[] args ) throws FileNotFoundException, IOException
{
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));

System.out.println( "PDF Created!" );
}
}

❾ Java能直接修改pdf文件嗎

貌似沒見過這個插件,還有pdf有一部分是根本不能修改的,哪怕用專業工具都不行,如果pdf裡面的文字可以讀取出來,倒是可以導入txt然後就很好修改了,pdf圖文混排,覺得java修改難度較大

閱讀全文

與java替換pdf相關的資料

熱點內容
java堆分配 瀏覽:159
linuxbuiltin 瀏覽:560
cstpdf 瀏覽:941
texstudio編譯在哪 瀏覽:352
國家反詐中心app注冊登記表怎麼注冊 瀏覽:972
加密機默認埠 瀏覽:101
有哪個網站有免費的python源代碼 瀏覽:304
蘋果手機如何導入安卓電話 瀏覽:915
奧利奧雙重解壓 瀏覽:388
安卓賬號怎麼在蘋果手機上玩 瀏覽:798
畫畫用什麼安卓ipad好 瀏覽:693
手機怎麼用pdf 瀏覽:697
怎麼把多個word合並成一個pdf 瀏覽:542
電學基礎pdf 瀏覽:726
cad插件怎麼編譯 瀏覽:617
網校源碼軟體 瀏覽:667
思科常用配置命令 瀏覽:377
水容易被壓縮嗎 瀏覽:753
java項目試題 瀏覽:316
為什麼安卓拍照沒有蘋果成相快 瀏覽:516