国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > JSP > 正文

動態jsp頁面轉PDF輸出到頁面的實現方法

2024-09-05 00:22:45
字體:
來源:轉載
供稿:網友

最近工作中遇到不少問題。總結一下。這段代碼主要功能是將一個生成JSP頁面轉發成PDF輸出到頁面

jsp頁面輸出

需要利用ITEXT

String html = ServletUtils.forward(request,response,"/WEB-INF/jsp/depot/print/jhd.jsp"); //轉發請求到jsp,返回解析之后的內容而不是輸出到瀏覽器//System.out.println(html);byte[] pdf = PDFUtils.html2pdf(html);response.setContentType("application/pdf");response.setHeader("Content-Length",String.valueOf(pdf.length));response.setHeader("Connection","keep-alive");response.setHeader("Accept-Ranges","none");response.setHeader("X-Frame-Options","DENY");OutputStream out = response.getOutputStream();out.write(pdf);out.flush();public class ServletUtils {/*** 此forward方法執行完畢之后不會輸出內容到瀏覽器,而是把輸出到字節流,最后以字符串的形式返回* @param request* @param response* @param src* @return*/public static String forward(HttpServletRequest request, HttpServletResponse response, String src) {try{/* ↓↓↓↓↓重新構造response,修改response中的輸出流對象,使其輸出到字節數組↓↓↓↓↓ */final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();final ServletOutputStream servletOuputStream = new ServletOutputStream() {@Overridepublic void write(int b) throws IOException {byteArrayOutputStream.write(b);}@Overridepublic boolean isReady() {return false;}@Overridepublic void setWriteListener(WriteListener writeListener) {}};final PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(byteArrayOutputStream, "UTF-8"));response = new HttpServletResponseWrapper(response) {public ServletOutputStream getOutputStream() {return servletOuputStream;}public PrintWriter getWriter() {return printWriter;}};/* ↑↑↑↑↑↑重新構造response,修改response中的輸出流對象,使其輸出到字節數組↑↑↑↑↑↑ *///執行forward操作request.getRequestDispatcher(src).forward(request,response);//把字節流中的內容太轉為字符串return new String(byteArrayOutputStream.toByteArray(),"utf-8");}catch (Exception e){throw new RuntimeException(e);}}}import com.itextpdf.text.*;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.tool.xml.Pipeline;import com.itextpdf.tool.xml.XMLWorker;import com.itextpdf.tool.xml.XMLWorkerFontProvider;import com.itextpdf.tool.xml.XMLWorkerHelper;import com.itextpdf.tool.xml.exceptions.CssResolverException;import com.itextpdf.tool.xml.html.CssAppliers;import com.itextpdf.tool.xml.html.CssAppliersImpl;import com.itextpdf.tool.xml.html.Tags;import com.itextpdf.tool.xml.parser.XMLParser;import com.itextpdf.tool.xml.pipeline.css.CSSResolver;import com.itextpdf.tool.xml.pipeline.css.CssResolverPipeline;import com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline;import com.itextpdf.tool.xml.pipeline.html.HtmlPipeline;import com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext;import java.io.*;/*** pdf工具類*/public class PDFUtils {/*** 把html轉換成pdf,以字節數組的形式返回pdf文件* @param html* @return pdf字節數組* @throws IOException* @throws DocumentException* @throws CssResolverException*/public static byte[] html2pdf(String html) throws IOException, DocumentException,CssResolverException {Document document = new Document(PageSize.A4);ByteArrayOutputStream os = new ByteArrayOutputStream();PdfWriter writer = PdfWriter.getInstance(document,os);document.open();XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(){@Overridepublic Font getFont(String fontname, String encoding, float size, int style) {return super.getFont(fontname == null ? "宋體" : fontname, encoding, size, style);}};fontProvider.addFontSubstitute("lowagie", "garamond");fontProvider.setUseUnicode(true);//使用我們的字體提供器,并將其設置為unicode字體樣式CssAppliers cssAppliers = new CssAppliersImpl(fontProvider);HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());CSSResolver cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true);Pipeline<?> pipeline = new CssResolverPipeline(cssResolver,new HtmlPipeline(htmlContext, new PdfWriterPipeline(document,writer)));XMLWorker worker = new XMLWorker(pipeline, true);XMLParser p = new XMLParser(worker);p.parse(new InputStreamReader(new ByteArrayInputStream(html.getBytes("gbk"))));document.close();return os.toByteArray();}}

以上所述是小編給大家介紹的動態jsp頁面轉PDF輸出到頁面的實現方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
高清欧美精品xxxxx在线看| 啪啪免费视频一区| 国产丝袜自拍| 国产女主播在线观看| 中文字幕在线视频免费观看| 黄色av网址在线免费观看| 牛牛精品视频在线| 最新中文字幕在线视频| 国产91久久久久蜜臀青青天草二| 日韩精品免费一区二区| 国产精品一区二区婷婷| 91精选福利| 黄色国产网站在线观看| 精品一区二区在线欧美| 看成年女人免费午夜视频| 欧美艹逼视频| 国产成人精品实拍在线| 麻豆精品永久免费视频| 国产激情视频网址| 久久久久久国产视频| 国产精品久久人| 黄色一级片视频| 国产h在线观看| 成人免费一区二区三区视频网站| 国产激情自拍| 午夜伦全在线观看| 亚洲精品xxxxx| 国产系列在线观看| 免费视频中文字幕| 一色桃子av在线| 欧美aaa一级片| 精灵使的剑舞无删减版在线观看| 国产在线看片| 丝袜理论片在线观看| 国产高清在线观看| 国产香蕉在线| 国产系列在线观看| 1区2区3区在线| 国产尤物视频| 人人干在线视频| 天天插天天操| 另类高清dbsm日本tvav| 蜜桃av网站| 国产卡一卡二卡三| 99视频免费在线观看| 麻豆国产在线播放| 黄网站app在线观看下载视频大全官网| av网站在线播放| 日本视频一二三区中文字幕| 亚洲va国产日韩欧美精品色婷婷| sese一区| 综合图区亚洲白拍在线 | 青草在线视频在线观看| 亚洲精品影院在线| 久久国产精品久久久久久小说| 国产原创av在线| 国产一卡二卡3卡4卡四卡在线| 亚洲videos| 日本h视频在线观看| а√最新版在线天堂| 亚洲最新永久在线观看| 一二三四区在线观看| 午夜影院在线| 噜噜噜噜噜在线视频| 五月天天在线| 国产传媒在线播放| 伊人222成人综合网| 天天插天天色| 中文字幕中文字幕在线中高清免费版 | 91极品在线| 在线国产小视频| 麻豆精品免费视频入口| 国产福利小视频在线| 国产黄色片在线播放| а√天堂www在线а√天堂视频| www.九九热.com| 日本动漫同人动漫在线观看| 国产在线观看91| 伊人永久在线| 中文字幕在线影视资源| 在线成人一区| 国产区视频在线观看| 俺来俺也去www色在线观看| 中文字幕免费中文| 精品三级久久久久久久电影聊斋| 人人干人人插| 永久免费av片在线观看全网站| 黄色av网站在线免费观看| 国产福利在线播放麻豆| 麻豆网站在线| 日本综合一区二区三区| 久久99亚洲网美利坚合众国 | 国产福利电影在线观看| 福利视频在线导航| www.香蕉视频在线观看| 在线观看wwww| 在线欧美一级视频| 国产精品偷乱一区二区三区 | 尤物视频在线看| sese在线视频| 精品成人一区二区三区免费视频| 依依成人在线| 伊人免费视频| 精品国产免费第一区二区| 中文字幕人成高视频| 免费av不卡在线观看| 天堂√中文在线| 夜夜操com| 欧美专区日韩| 成年网站免费入口在线观看| 久热久精久品这里在线观看| 免费a级在线播放| 欧美日韩亚洲第一页| www.蜜桃av| 超碰免费在线播放| 国产精品作爱| 高清av在线| 国产精品不卡一区二区三区在线观看| 国产在线观看a| 黄色电影网站在线观看| 国产在线传媒| 天堂在线亚洲| 国产午夜电影| 精品全国在线一区二区| 亚洲日本伊人| 成在线人视频免费视频| 狠狠操狠狠色| 在线天堂av| 国产美女福利在线| 国产人成在线观看| av在线资源网| 青青草原国产在线| 国产三级视频在线| 青青久在线视频免费观看| 国产视频中文字幕在线观看| 99在线播放| 久久国产情侣| 伊人网在线观看| 国产男女无套在线播放| 91国内精品在线视频| 国产精选在线观看| av中文网站| 91社区在线观看| 国产一区二区三区四区尤物| 亚洲精品乱码电影在线观看| 国产蜜臀av在线播放| 国产深夜视频在线观看| 日p在线观看| 中文岛国精品亚洲一区| 中文字幕日本在线| 国产中文字幕网| 青青草中文字幕| 亚洲永久免费网站| 国产成人综合亚洲欧美在| 国产亚洲精品午夜高清影院| 激情综合丁香| 狠狠干天天干| 另类综合图区| 久草亚洲一区| 成人av小说网| 国产精品自产拍在线观看2019 | 国产精品久久久高清免费| 国产在线高清理伦片a| 四虎久久影院| 阿v免费在线观看| 久久久久久久久亚洲精品| 性国产高清在线观看| 精灵使的剑舞无删减版在线观看| 国产视频资源| 国产成人精品久久一区二区小说| 国产蜜臀在线| 国产精品自拍亚洲| 91超碰在线免费| 狠狠操视频网站| 国产永久免费高清在线观看| 国产在线精品一区二区不卡| 成人日韩欧美| 国产视频你懂的| 在线亚洲精品自拍| 天天干天天摸| 国产乱人视频免费播放| 国产精品亚洲色图| 国产白浆在线| 久热国产在线视频| 午夜av在线免费观看| 国产啊啊啊视频在线观看| 日韩黄色成人| 国产精品入口麻豆免费观看| 国产精品剧情一区二区三区 | 天天插天天操| 天天操天天是| www.三区| 91精品国产高久久久久久五月天| 69av二区| 国产免费专区| 四虎免费播放| 国产对白叫床清晰在线播放| xxx国产精品| 精品极品三级久久久久| 久久久久久久久亚洲精品|