當前位置:首頁 » 文件傳輸 » springmvc上傳pdf文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

springmvc上傳pdf文件

發布時間: 2023-02-08 16:14:04

A. 如何實現springmvc將返回的給前端的pdf文件放在瀏覽器里預覽

你好可以打開軟體管家在里邊下載安裝PDF閱讀器,安裝後就可以在瀏覽器里顯示。

B. 如何把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;
}
}

C. spring mvc 怎麼大小上傳文件控制

1、SpringMVC的配置文件裡面可以配置限制上傳文件的大小,比如40MB,但是,如果在頁面上上傳超過40MB ,則他都不進入到Action,則直接就報錯了。被攔截了。

2、客戶端判斷的話,IE8、IE9、火狐好像支持都不一樣,有說用Flash的,有說用HTML5的,
個人感覺HTML5不太靠譜,畢竟現在的應用肯定是要支持IE8、IE9的。

D. springmvc輸出流在頁面顯示pdf

1、首先需要把springmvc打開。
2、然後找到設置,選擇springmvc輸出流。
3、最後即可完成springmvc輸出流在頁面顯示pdf。

E. springmvc怎麼將上傳本地文件到文件伺服器

Spring MVC為文件上傳提供了直接的支持,這種支持是通過即插即用的MultipartResolver實現的。Spring使用Jakarta Commons FileUpload 技術實現了一個MultipartResolver實現類:CommonsMultipartResolver。
Spring MVC上下文中默認沒有裝配MultipartResolver,因此默認情況下不能處理文件的上傳工作。如果想要使用Spring的文件上傳功能,需要先在上下文中配置MultipartResolver。
第一步:配置MultipartResolver
使用CommonsMultipartResolver配置一個MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"

F. springmvc文件上傳路徑設置

springmvc文件上傳路徑設置:
1、導入文件上傳的坐標。
2、在spring-mvc.xml配置文件中配置文件解析器對象,property可以配置上傳文件的大小等屬性。注意:id一定要是multipartResolver。
3、前端頁面的form表單,method是post方法,加上enctype="multipart/form-data"這個屬性。
4、後端方法的參數類型為MultipartFile,參數名要與前端文件域的name一樣。
5、最後用file參數的getOriginalFilename()方法獲取上傳的文件名,然後再用transferTo(參數1,參數2)方法將文件上傳到指定路徑。註:transferTo(參數1,參數2)的參數1為指定將文件上傳的路徑,參數2為文件名。

G. springmvc怎麼在瀏覽器顯示遠程pdf

1、首先需要把springmvc在瀏覽器中打開。
2、其次在瀏覽器中找到設置,選擇遠程。
3、最後即可完成springmvc在瀏覽器顯示遠程pdf。