導航:首頁 > 文檔加密 > mvcpdf

mvcpdf

發布時間:2022-04-14 20:19:47

① MVC界面如何下載pdf文件

在頁面中直接打開PDF(要求機器已安裝adobe reader),則只需要修改HTTP標頭的參數:
將「Response.AddHeader("content-disposition", "attachment; filename=AdmissionTicket.pdf");」替換成「Response.AddHeader("content-disposition", string.Format("inline;filename={0}.pdf", admissionFormId));」

② 如何把springmvc model 生成pdf文件

本文先敘述,如何操作PDF模板生成PDF文件,再說明在SpringMVC中如何根據PDF模板生成PDF文件。
使用PDF模板生成PDF文件需要以下幾個步驟:
下面按步驟說明:
1. 使用Microsoft Office Word畫好模板
此步驟就不詳述了,就是一個普通的Word文件(template.docx)。給個示例截圖:

2. 使用Adobe Acrobat X Pro將Word文件轉換為帶表單欄位的PDF模板文件
1) 打開Adobe Acrobat X Pro
2) 選擇「創建PDF表單」
3) 選擇源:(PDF、Word、Excel或其它文件類型),下一步
4) 定位Word文件路徑,下一步
5) Adobe Acrobat X Pro會自動猜測表單欄位位置,如圖

6) 一般生成的表單欄位都不符合我們的要求,選中刪除即可。
7) 點擊右鍵選擇文本框,拖動到適當的位置,設置好域名稱,字型大小,字體等。

8) 保存模板文件。(template.pdf)
3. 使用itext操作PDF模板,填充數據,生成PDF文件
1) 需要jar包:itext.jar、itextAsian.jar
2) 核心代碼:
package personal.hutao.test;

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

public class TestPdf {

@Test
public void test() throws IOException, DocumentException {
String fileName = "D:/template.pdf"; // pdf模板
PdfReader reader = new PdfReader(fileName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfStamper ps = new PdfStamper(reader, bos);
AcroFields fields = ps.getAcroFields();
fillData(fields, data());
ps.setFormFlattening(true);
ps.close();
OutputStream fos = new FileOutputStream("D:/contract.pdf");
fos.write(bos.toByteArray());
}

public void fillData(AcroFields fields, Map<String, String> data) throws IOException, DocumentException {
for (String key : data.keySet()) {
String value = data.get(key);
fields.setField(key, value);
}
}

public Map<String, String> data() {
Map<String, String> data = new HashMap<String, String>();
data.put("borrower", "胡桃同學");
return data;
}
}

3) 打開contract.pdf,如圖
至此,就實現了根據PDF模板生成PDF文件。
SpringMVC的視圖中已提供了對PDF模板文件的支持:org.springframework.web.servlet.view.document.AbstractPdfStamperView。那麼只需要配置好此視圖就可以了。具體分為以下步驟:
1) 實現抽象類 AbstractPdfStamperView
package personal.hutao.view;

import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.document.AbstractPdfStamperView;

import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfStamper;

public class PdfStamperView extends AbstractPdfStamperView {

public static final String DATA = "data";
public static final String FILENAME = "mergePdfFileName";

@SuppressWarnings("unchecked")
@Override
protected void mergePdfDocument(Map<String, Object> model,
PdfStamper stamper, HttpServletRequest request,
HttpServletResponse response) throws Exception {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(model.get(FILENAME).toString().getBytes(), "ISO8859-1"));
AcroFields fields = stamper.getAcroFields();
fillData(fields, (Map<String, String>) model.get(DATA));
stamper.setFormFlattening(true);
}

private void fillData(AcroFields fields, Map<String, String> data)
throws IOException, DocumentException {
for (String key : data.keySet()) {
String value = data.get(key);
fields.setField(key, value);
}
}

}

2) 在SpringMVC的配置文件中配置視圖
<!-- 按照BeanName解析視圖 -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="1" />
</bean>

<!-- 定義Pdf模版視圖 -->
<bean id="contract" class="personal.hutao.view.PdfStamperView">
<property name="url" value="/WEB-INF/template/template.pdf" />
</bean>

3) Controller中的業務邏輯處理
package personal.hutao.controller;

import static personal.hutao.view.PdfStamperView.DATA;
import static personal.hutao.view.PdfStamperView.FILENAME;

import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.coamctech.sample.commons.controller.BaseController;

@RequestMapping("/contract")
@Controller
public class TestController {

@RequestMapping("/export/pdf")
public String (Model model) {
model.addAttribute(DATA, data());
model.addAttribute(FILENAME, "XXX貸款合同");
return "contract";
}

private Map<String, String> data() {
Map<String, String> data = new HashMap<String, String>();
data.put("borrower", "胡桃同學");
return data;
}
}

③ mvc 用什麼pdf插件閱讀起

可以用:Foxit Phantom:

④ 有用springmvc的IText開發過PDf的嗎求教

我下載的裡麵包含了 itextpdf-5.2.0.jar itextpdf-5.2.0-javadoc.jar itextpdf-5.2.0-sources.jar itext-xtra-5.2.0.jar itext-xtra-5.2.0-javadoc.jar itext-xtra-5.2.0-sources.jar 你的應該不全,自己再去找。

⑤ spring mvc框架 加ireport模板列印pdf文件異常 高手指點

為什麼不直接用servlet?
if ("pdf".equals(strfiletype.trim())) {//導出pdf
System.out.println("導出pdf.........");
byte[] bytes = JasperRunManager.runReportToPdf(reportFile
.getPath(), parameters, conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
String filename = null;
if(exportFileName != null && !exportFileName.equals("")){
filename = exportFileName + ".pdf";
}else{
filename = DateTime.getSystemDateTimeString() + ".pdf";
}
String fileName = new String(filename.getBytes("GBK"),
"ISO8859_1");
response.setHeader("Content-disposition",
"attachment; filename=" + fileName);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
response.setStatus(response.SC_OK);
response.flushBuffer();
System.out.println("導出pdf....end.....");
}

⑥ 誰有asp.net mvc3.0 高級編程 完成版的pdf書籍啊

目前沒有 電子版 我也在找。。。 你有什麼好書 我們共享下 [email protected]

⑦ MVC中網頁導出為PDF怎麼實現

最近做過一個將頁面表格導出至PDF的功能,現在將它整理出來,以備不時之需。
PDF模板是用的是.net報表文件(.rdlc),原理就是將數據填充到報表文件中,利用Microsoft.Reporting.WebForms.LocalReport類的方法,輸出PDF位元組流,然後,通過定義Response的HTTP標頭定義,在瀏覽器輸出PDF文件。
以下是關鍵部分的代碼:
1. 首先,准備一個輸出PDF位元組流的方法:

usingSystem;
usingSystem.Collections.Generic;
usingATA.Toeic.Models;
usingATA.Toeic.DAL;
usingSystem.IO;
usingMicrosoft.Reporting.WebForms;
namespaceATA.Toeic.BLL
{
publicclassAdmissionTicketBLL
{
privateRegistrationDALdal=newRegistrationDAL();

///<summary>
///『單個導出』
///導出包含一張准考證的pdf文件
///</summary>
///<paramname="addmissionFormId">准考證號</param>
///<paramname="reportPath">報表模板路徑</param>
///<returns>pdf文件位元組流</returns>
publicbyte[]ExportTicket(stringaddmissionFormId,stringreportPath,outstringmimeType)
{
List<string>arrId=newList<string>();
arrId.Add(addmissionFormId);
returnExportTicket(arrId,reportPath,outmimeType);
}

///<summary>
///『批量導出』
///導出多張准考證的pdf文件
///</summary>
///<paramname="arrAddmissionFormId">需要導出的准考證號</param>
///<returns>pdf文件位元組流</returns>
publicbyte[]ExportTicket(List<string>arrAddmissionFormId,stringreportPath,outstringmimeType)
{
LocalReportlocalReport=newLocalReport();
localReport.ReportPath=reportPath;
//報表對象的模板文件的路徑
//報表對象的數據源
=newReportDataSource("dsList",GetAdmissionTicketList(arrAddmissionFormId.ToArray())
//這個方法返回一個IList<Model>對象);
localReport.DataSources.Add(reportDataSource);
stringreportType="PDF";
stringencoding;
stringfileNameExtension;
//
//http://msdn2.microsoft.com/en-us/library/ms155397.aspx
stringdeviceInfo="<DeviceInfo><OutputFormat>PDF</OutputFormat></DeviceInfo>";Warning[]warnings;string[]streams;byte[]renderedBytes;//Renderthereport
renderedBytes=localReport.Render(reportType,deviceInfo,outmimeType,outencoding,outfileNameExtension,outstreams,outwarnings);
returnrenderedBytes;
}
}
}
2.在action中定義HTTP標頭,輸出PDF文件,在這里批量和單個已經沒有區別了,區別包含在byte[]的位元組流中。

[CheckServiceExpire]
(intserviceid,stringCondition)
{
List<RegistrationEn>list=newRegistrationBLL().GetExamineeByCondi(serviceid,Condition);
if(list==null||list.Count==0)
returnAlert("目前沒有準考證信息!","~/Views/ExamService/SaveSuccess.aspx",new{action="GetExamineeByPage",controller="Registration",serviceid=serviceid});
List<string>sl=newList<string>();
foreach(RegistrationEnreninlist)
sl.Add(ren.fAdmissionFormId);
try
{
AdmissionTicketBLLbll=newAdmissionTicketBLL();
stringrdlcPath=Server.MapPath("~/Resources/AdmissionTicket.rdlc");
stringmimeType;
byte[]renderedBytes=bll.ExportTicket(sl,rdlcPath,outmimeType);
Response.AddHeader("content-disposition","attachment;filename=AdmissionTicket.pdf");
returnFile(renderedBytes,mimeType);
}catch{
returnAlert("獲取准考證信息出錯!","~/Views/ExamService/SaveSuccess.aspx",new{action="GetExamineeByPage",controller="Registration",serviceid=serviceid});
}
}

這樣就可以正常導出PDF文件了。

補充:

如果想在頁面中直接打開PDF(要求機器已安裝adobe reader),則只需要修改HTTP標頭的參數:

將「Response.AddHeader("content-disposition", "attachment; filename=AdmissionTicket.pdf");」替換成「Response.AddHeader("content-disposition", string.Format("inline;filename={0}.pdf", admissionFormId));」

⑧ 精通Struts2:基於MVC的JavaWeb應用開發實戰 pdf

李剛的那本好.我就買了一本.
可以說李剛的那一套一系列的都不錯.李剛有本輕量級J2EE企業應用實戰.
非常棒,強烈推薦.
我以前買過一本孫衛琴的講基本MVC的開發,不過是STRUTS1.2的
至於PDF版本的,可以去網路文庫搜索下或者去電驢搜索
STRUTS2有本叫權威指南來著,現在應該有STRUTS2.1權威指南,那本可以作為開發人員必備的手冊,不適合入門.

這個嘛,得支持正版,有些書保護得比較好,沒有流傳出PDF的版本.得花錢買網上買了.

閱讀全文

與mvcpdf相關的資料

熱點內容
瑜伽pdf下載地址 瀏覽:252
小花貓app改名叫什麼 瀏覽:837
編程器固件修改 瀏覽:523
沈陽技校有程序員嗎 瀏覽:300
各行app的基金有什麼不一樣嗎 瀏覽:62
python編譯器怎麼裝 瀏覽:73
新浪php筆試題 瀏覽:138
新時達伺服器如何自學習 瀏覽:27
程序中什麼命令用來輸入單字元 瀏覽:59
php是否有數據 瀏覽:141
虛擬雲伺服器是什麼意思 瀏覽:279
vb是編譯性語言嗎 瀏覽:209
json格式用什麼編譯器 瀏覽:319
word轉pdf代碼 瀏覽:802
單片機中如何編程 瀏覽:739
cad常見的快捷命令 瀏覽:625
伺服器端有什麼 瀏覽:325
文件夾正在使用如何重命名 瀏覽:378
單片機觸摸 瀏覽:875
qq收藏夾在手機哪個文件夾 瀏覽:755