久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java生成pdf文件或jpg圖片的案例講解

瀏覽:3日期:2022-08-17 14:43:39

在一些業務場景中,需要生成pdf文件或者jpg圖片,有時候還需要帶上水印。我們可以事先用freemarker定義好html模板,然后把模板轉換成pdf或jpg文件。

同時freemarker模板還支持變量的定義,在使用時可以填充具體的業務數據。

1、Maven導包

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version></parent><dependencies> <!-- freemarker --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> <!-- pdf核心包 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.12</version> </dependency> <!-- 適配中文字體 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <!-- html轉pdf --> <dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.5.12</version> </dependency> <!-- pdf轉圖片 --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.5</version> </dependency></dependencies>2、接口定義

2.1、請求

@Datapublic class GeneratePdfReq { /** * 生成pdf文件的絕對路徑 */ @NotBlank(message = '生成pdf文件的絕對路徑不能為空') @Pattern(regexp = '^.*(.pdf|.jpg)$', message = '生成的文件必須以.pdf或.jpg結尾') private String absolutePath; /** * 使用html模板的絕對路徑 */ @NotBlank(message = '使用的模板路徑不能為空') private String templateName; /** * 渲染模板的業務數據 */ private Object dataModel; /** * 水印信息 */ private WaterMarkInfo waterMarkInfo; /** * pdf文件的寬,默認A4 */ private float width = 595; /** * pdf文件的高,默認A4 */ private float height = 842;}

2.2、水印

@Datapublic class WaterMarkInfo { /** * 如果為null設置水印時會報錯 */ private String waterMark = ''; /** * 水印透明度,值越小透明度越高 */ private float opacity = 0.2F; /** * 水印字體,如果亂碼設置為本地宋體字體:fonts/simsun.ttc,1 */ private String fontName = 'STSong-Light'; /** * 水印編碼格式,如果亂碼設置為:BaseFont.IDENTITY_H */ private String encoding = 'UniGB-UCS2-H'; /** * 字體大小 */ private float fontSize = 24; /** * 橫坐標在頁面寬度的百分比,左下角為原點 */ private float x = 50; /** * 縱坐標在頁面高度的百分比,左下角為原點 */ private float y = 40; /** * 水印旋轉角度 */ private float rotation = 45;}

2.3、響應

@Datapublic class GeneratePdfResp { /** * 生成pdf的絕對路徑 */ private String absolutePath;}3、應用代碼

3.1、渲染freemarker模板獲取html網頁

@Service('freeMarkerService')@Slf4jpublic class FreeMarkerServiceImpl implements FreeMarkerService { @Autowired private FreeMarkerConfigurer freeMarkerConfigurer; /** * 渲染html后獲取整個頁面內容 * * @param templatePath 模板路徑 * @param dataModel 業務數據,一般以map形式傳入 * @return */ @Override public String getHtml(String templatePath, Object dataModel) { log.info('開始將模板{}渲染為html,業務數據{}', templatePath, JSONUtil.toJsonPrettyStr(dataModel)); Configuration cfg = freeMarkerConfigurer.getConfiguration(); cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); // freemaker異常時仍舊拋出,統一異常處理 cfg.setClassicCompatible(true);// 不需要對null值預處理,否則需要在模板取值時判斷是否存在,不然報錯 StringWriter stringWriter = new StringWriter(); try { // 設置模板所在目錄,絕對路徑方式,不打進jar包// cfg.setDirectoryForTemplateLoading(new File(templatePath).getParentFile());// Template temp = cfg.getTemplate(new File(templatePath).getName()); // 相對路徑設置模板所在目錄,模板打進jar包,默認就是resources目錄下的/templates目錄。 cfg.setClassForTemplateLoading(this.getClass(), '/templates'); Template temp = cfg.getTemplate(templatePath); temp.process(dataModel, stringWriter); } catch (Exception e) { log.error(PdfErrorCode.PDF_TEMPLATE_RENDER_FAIL.getDesc(), e); throw new PdfBizException(PdfErrorCode.PDF_TEMPLATE_RENDER_FAIL); } return stringWriter.toString(); }}

3.2、將html網頁轉pdf,并添加水印

@Service('pdfService')@Slf4jpublic class PdfServiceImpl implements PdfService { public static final String FONT_PATH = 'fonts/simsun.ttc,1'; @Autowired private WaterMarkerService waterMarkerService; /** * html頁面內容轉pdf,并給每頁附上水印 * * @param html html頁面內容 * @param width pdf的寬 * @param height pdf的高 * @param waterMarkInfo 水印信息 * @return */ @Override public byte[] html2Pdf(String html, float width, float height, WaterMarkInfo waterMarkInfo) { log.info('=================開始將html轉換為pdf================='); ByteArrayOutputStream out = new ByteArrayOutputStream(); this.html2Pdf(html, width, height, out); byte[] bytes = out.toByteArray(); // 設置水印 if (waterMarkInfo != null) { bytes = waterMarkerService.addWaterMarker(bytes, waterMarkInfo); } return bytes; } /** * html轉pdf * * @param html html頁面內容 * @param width pdf的寬 * @param height pdf的高 * @param out 輸出流,pdf文件用此流輸出,需要pdf文檔關閉后流中才會有數據 */ @Override @SneakyThrows public void html2Pdf(String html, float width, float height, OutputStream out) { @Cleanup Document document = new Document(new RectangleReadOnly(width, height)); // 默認A4縱向 // 這里需要關閉document才能讓生成的pdf字節數據刷到輸出流中 PdfWriter writer = PdfWriter.getInstance(document, out); // 關閉可能導致生成的pdf顯示異常(Chrome) document.open(); // 設置字體,這里統一用simsun.ttc即宋體 XMLWorkerFontProvider asianFontProvider = new XMLWorkerFontProvider() { @Override public Font getFont(String fontname, String encoding, boolean embedded, float size, int style, BaseColor color, boolean cached) { Font font; try { font = new Font(BaseFont.createFont(FONT_PATH, BaseFont.IDENTITY_H, BaseFont.EMBEDDED)); } catch (Exception e) { log.error(PdfErrorCode.SET_PDF_FONT_FAIL.getDesc(), e); throw new PdfBizException(PdfErrorCode.SET_PDF_FONT_FAIL); } font.setStyle(style); font.setColor(color); if (size > 0) { font.setSize(size); } return font; } }; // 生成pdf try { XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(html.getBytes('UTF-8')), null, Charset.forName('UTF-8'), asianFontProvider); // 如果系統已經裝有simsun.ttc字體,則不需要單獨設置字體也不需要itext-asian jar包// XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(html.getBytes('UTF-8')), null, Charset.forName('UTF-8')); } catch (RuntimeWorkerException e) { log.error(PdfErrorCode.HTML_CONVERT2PDF_FAIL.getDesc(), e); throw new PdfBizException(PdfErrorCode.HTML_CONVERT2PDF_FAIL); } }}

添加水印實現類

@Service('waterMarkerService')@Slf4jpublic class WaterMarkerServiceImpl implements WaterMarkerService { /** * 給pdf文件每頁添加水印 * * @param source pdf文件的字節數組形式 * @param waterMarkInfo 水印信息 * @return */ @Override public byte[] addWaterMarker(byte[] source, WaterMarkInfo waterMarkInfo) { log.info('開始設置水印數據{}', JSONUtil.toJsonPrettyStr(waterMarkInfo)); ByteArrayOutputStream out = new ByteArrayOutputStream(); this.addWaterMarker(source, waterMarkInfo, out); return out.toByteArray(); } /** * 給pdf文件每頁添加水印 * * @param source pdf文件的字節數組形式 * @param waterMarkInfo 水印信息 * @param out 輸出流,pdf文件用此流輸出,需要pdf文檔關閉后流中才會有數據 */ @Override @SneakyThrows public void addWaterMarker(byte[] source, WaterMarkInfo waterMarkInfo, OutputStream out) { @Cleanup PdfReader reader = new PdfReader(source); // 這里需要關閉PdfStamper才能讓生成的pdf字節數據刷到輸出流中 @Cleanup PdfStamper pdfStamper = new PdfStamper(reader, out); BaseFont font = BaseFont.createFont(waterMarkInfo.getFontName(), waterMarkInfo.getEncoding(), BaseFont.EMBEDDED); PdfGState gs = new PdfGState(); gs.setFillOpacity(waterMarkInfo.getOpacity()); // 給每頁pdf生成水印 for (int i = 1; i <= reader.getNumberOfPages(); i++) { PdfContentByte waterMarker = pdfStamper.getUnderContent(i); waterMarker.beginText(); // 設置水印透明度 waterMarker.setGState(gs); // 設置水印字體和大小 waterMarker.setFontAndSize(font, waterMarkInfo.getFontSize()); // 設置水印位置、內容、旋轉角度 float X = reader.getPageSize(i).getWidth() * waterMarkInfo.getX() / 100; float Y = reader.getPageSize(i).getHeight() * waterMarkInfo.getY() / 100; waterMarker.showTextAligned(Element.ALIGN_CENTER, waterMarkInfo.getWaterMark(), X, Y, waterMarkInfo.getRotation()); // 設置水印顏色 waterMarker.setColorFill(BaseColor.GRAY); waterMarker.endText(); } }}

3.3、整合實現

@Slf4j@Service('generatePdfService')public class GeneratePdfServiceImpl implements RestService { @Autowired private FreeMarkerService freeMarkerService; @Autowired private PdfService pdfService; @Override @SneakyThrows public GeneratePdfResp service(GeneratePdfReq generatePdfReq) { log.info('開始生成pdf文件,請求報文:{}', JSONUtil.toJsonPrettyStr(generatePdfReq)); /* 1.根據freemarker模板填充業務數據獲取完整的html字符串 */ String html = freeMarkerService.getHtml(generatePdfReq.getTemplateName(), generatePdfReq.getDataModel()); /* 2.生成pdf文件(內存) */ byte[] bytes = pdfService.html2Pdf(html, generatePdfReq.getWidth(), generatePdfReq.getHeight(), generatePdfReq.getWaterMarkInfo()); /* 3.本地保存pdf文件 */ File targetFile = new File(generatePdfReq.getAbsolutePath()); // 上級目錄不存在則創建 if (!targetFile.getParentFile().exists()) { targetFile.getParentFile().mkdirs(); } // 根據不同文件名后綴生成對應文件 if (generatePdfReq.getAbsolutePath().endsWith('pdf')) { FileUtils.writeByteArrayToFile(targetFile, bytes); } else { @Cleanup PDDocument document = PDDocument.load(bytes); PDFRenderer renderer = new PDFRenderer(document); BufferedImage bufferedImage = renderer.renderImageWithDPI(0, 150);// 只打第一頁,dpi越大圖片越高清也越耗時 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, 'jpg', baos); FileUtils.writeByteArrayToFile(targetFile, baos.toByteArray()); } log.info('文件本地保存完成,文件路徑:[{}]', targetFile.getAbsolutePath()); /* 4.組織返回 */ GeneratePdfResp generatePdfResp = new GeneratePdfResp(); generatePdfResp.setAbsolutePath(targetFile.getAbsolutePath()); return generatePdfResp; }}

3.4、controller

@Slf4j@RestControllerpublic class PdfController { @Autowired private RestService generatePdfService; @PostMapping(value = '/html2Pdf') public GeneratePdfResp html2Pdf(@RequestBody @Validated GeneratePdfReq req) { GeneratePdfResp resp = generatePdfService.service(req); return resp; }}4、應用

4.1、freemarker模板(html模板)

<html><head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <meta http-equiv='Content-Style-Type' content='text/css'/> <style> body { font-family: SimSun } </style> <title>html模板</title></head><body><div> <p style='margin:0pt; orphans:0; text-align:center; widows:0'> <span style='font-family:SimSun; font-size:16pt'>html模板</span><br/> </p> <p>姓名:${name}</p> <p>證件號碼:${cardNo}</p> <p>日期:${date}</p></div></body></html>

4.2、接口調用生成pdf

Java生成pdf文件或jpg圖片的案例講解

Java生成pdf文件或jpg圖片的案例講解

5、說明

1、根據參數后綴名可以生成pdf或jpg文件,生成的pdf文件默認為A4大小,也可以通過請求參數設置大小。

2、pdf文件會根據html模板內容大小自動分頁。

3、如果生成圖片,多頁不會生成多張圖片,可以把高度設置大一些,最后會生成長圖。

4、水印每頁都會自動添加。

5、為了提高代碼的復用性和可維護性,工程內渲染html模板、生成pdf文件、添加水印都有單獨的接口實現。

代碼地址

github:https://github.com/senlinmu1008/spring-boot/tree/master/html2pdf

gitee:https://gitee.com/ppbin/spring-boot/tree/master/html2pdf

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 免费观看视频www | 国产精品777 | 欧美成人精品一区二区三区 | 国产精品成人3p一区二区三区 | 成人免费在线观看视频 | 在线观看国产视频 | 日韩一区电影 | 91久久看片| 干片网| 欧美黑人一级爽快片淫片高清 | 免费av中国 | 综合久久99 | 视频在线一区二区 | 亚洲欧美一区二区三区久久 | 国产精品国产三级国产a | 亚洲日日操 | 欧美一级片免费在线观看 | 亚洲人成人一区二区在线观看 | 久久久精| 国产精品成人一区二区 | 国产性×xxx盗摄xxxx | 91综合网 | 久久成人免费观看 | 九九亚洲精品 | 国产精品96久久久久久久 | 日韩久久精品电影 | 91丨九色丨国产 | 精品久久网| 精品久久久久久久久久久久久久 | 国产精品视频一区二区三区, | 99久久婷婷国产精品综合 | 一区二区中文 | 色精品视频| 蜜桃精品在线观看 | a级毛片免费高清视频 | 久久精品视频一区 | 日韩免费 | 欧美成人精品 | 成人在线免费视频 | 国产精品久久久久久久久久久久 | 国产一区二区三区免费在线观看 | 亚洲精品视频网 | 在线观看日韩av | 黄色一级大片网站 | 欧美视频在线播放 | 一级大毛片| 国产精品日韩在线观看 | 久久精品综合 | 亚洲v在线| 特级淫片日本高清视频免费 | 欧美日韩亚洲一区二区 | 精品久久久久久久久久 | 国产91网 | 国产在视频一区二区三区吞精 | 一级毛片免费看 | 亚洲一区视频在线 | 国产男女视频在线观看 | 国产一级免费视频 | 精品一区在线 | 天天澡天天狠天天天做 | 91精品一区二区三区久久久久久 | 日韩一级av毛片 | 黄久久久 | 99爱在线观看 | 亚洲精品一区二区在线观看 | 国产黄色一级片 | 欧美精品久久一区 | 亚洲毛片 | 欧美精产国品一二三区 | 天堂av中文在线 | 日本免费视频在线观看 | 人人做人人澡人人爽欧美 | 精品亚洲国产成av人片传媒 | 国产精品美女久久久久久免费 | 草草久久久 | 亚洲国产成人久久一区二区三区 | 一区二区三区国产视频 | 99爱爱视频| 成人网址在线观看 | 欧美一性一交 | 91大神xh98hx在线播放 | 国产乱码精品一品二品 | 国产色在线观看 | 欧美日韩国产在线播放 | 久草成人 | 久久久久久久久久久久网站 | 蜜桃αv | 国产精品1区2区3区 欧美 中文字幕 | 国产精品18hdxxxⅹ在线 | 精品少妇一区二区三区在线播放 | 国产激情视频 | 99这里只有精品 | 亚洲精品欧美视频 | 日韩中文一区 | 草比网站 | 色综合视频 | 国产精品美女久久久久久久久久久 | 中文字幕亚洲一区 | 色偷偷888欧美精品久久久 | 丝袜久久| 国产做a爰片久久毛片a我的朋友 | 国产精品一区二区三区四区 | 色婷婷精品国产一区二区三区 | 亚洲一区二区福利 | 青青久在线视频 | 成人一级黄色大片 | 综合久久99 | 中文字幕日韩一区二区三区 | 中文字幕av亚洲精品一部二部 | 国产一区二区精品 | 伊人最新网址 | 99国产精品 | 国产精品二区一区二区aⅴ污介绍 | 欧美日韩在线观看中文字幕 | 视频一区二区中文字幕 | 亚洲天堂一区 | 成人黄页在线观看 | av久久| 懂色中文一区二区在线播放 | 亚洲精品一二区 | 亚洲精品一区久久久久久 | 成人在线看片 | 欧美日韩国产一区二区 | 欧美一区二区三区电影 | 99热在线观看免费 | 九色91视频 | 久久se精品一区精品二区 | 91cn在线观看 | 日韩欧美二区 | 在线播放国产一区二区三区 | 一级毛片色一级 | 欧美一级视频在线观看 | 日日做| 最新中文字幕在线 | 欧美激情专区 | 九九热这里只有精品6 | 久久兔费看a级 | 日韩高清在线播放 | 亚洲第一成人在线视频 | 男人久久天堂 | 日韩在线精品 | 男人的天堂在线视频 | 欧美日韩视频在线 | 免费观看羞羞视频网站 | chinese中国真实乱对白 | 欧美第一页 | 黄色一级片免费 | 日韩1区 | 日本69视频 | 日韩极品视频 | 影音先锋亚洲资源 | 国产亚洲一区二区三区在线观看 | 欧美理论片在线观看 | 日韩网站免费观看 | 亚洲精品电影在线观看 | 91精品国产91久久综合桃花 | 久久午夜影院 | 欧美精品在线观看 | 五月天电影网 | 亚洲专区中文字幕 | 久草成人| 亚洲一区二区中文字幕 | 天天干夜夜弄 | 毛片在线视频 | 国产视频中文字幕 | 精国产品一区二区三区四季综 | 日韩精品一区二区三区在线 | 亚洲精品免费视频 | 国产精品美女久久久久aⅴ国产馆 | 亚洲国产视频网站 | 午夜毛片 | 成人av福利| 亚洲精品视频播放 | 久在线视频 | 黄色最新网站 | 成人免费视频7777777 | 日韩有码在线播放 | 97在线免费视频 | a久久| 日本在线免费 | 日韩在线小视频 | 国产综合99 | 韩国三级中文字幕hd久久精品 | 91在线成人| 亚洲狠狠爱一区二区三区 | 日韩激情视频一区 | 欧美精品一区二区三区在线 | 久久久久久亚洲精品视频 | 欧美八区 | 国产亚洲精品精品国产亚洲综合 | 一区二区三区高清不卡 | 风间由美一区二区三区在线观看 | 欧美精品成人一区二区三区四区 | 一区福利视频 | 久久久久无码国产精品一区 | 久久国产日韩 | av在线日韩| 国产高潮失禁喷水爽网站 | 午夜理伦三级 | 一区二区三区日韩 | 女同久久另类99精品国产 | 一区二区三区国产视频 | 亚洲精品在线视频 | 色婷网 | 一级毛片aaaaaa免费看 | 国产精品第一国产精品 | 国产精品久久久久久久久久东京 | 午夜免费小视频 | 精品成人免费一区二区在线播放 | 91精品久久久久久久久久 | 亚洲一区综合 | 亚洲成人一区二区三区 | 亚洲成人精品区 | 欧美激情一区二区三区 | 四虎com| 视频一区二区中文字幕 | 中文字幕久久精品 | 日韩福利片 | 在线一级电影 | 91精品国产综合久久久久久丝袜 | 羞羞视频网站 | 成人aaaa | 国产亚洲二区 | 久久久精品一区 | 日韩精品视频在线观看免费 | 色黄视频在线观看 | 久久不射电影网 | 欧美日韩在线免费观看 | 久草在线视频免费播放 | 国产精品人人做人人爽 | 国产在线观看一区 | 国产一区二区黑人欧美xxxx | 日本精品久久 | 日韩一区二 | 国产成人在线一区二区 | 九九热这里只有精品在线观看 | 日韩欧美中文字幕在线视频 | 99精品一区二区三区 | 久久久久久综合 | 91久久极品| 美女一区 | 国产精品日产欧美久久久久 | 九九久久国产 | chinese中国真实乱对白 | 国精产品99永久一区一区 | 国产二区视频 | 午夜成年人 | 五月婷婷激情 | 日韩精品小视频 | 日韩视频一区二区三区 | 噜噜噜在线观看免费视频日本 | 91久久精品国产亚洲a∨麻豆 | 欧美日韩成人在线视频 | 亚洲精品女人久久 | 久久精品亚洲一区二区 | 在线成人免费观看www | 999国产| 波多野结衣 一区二区三区 精品精品久久 | 午夜成人免费影院 | 成人a视频 | 欧美中文字幕在线 | 一色视频| 日韩福利视频导航 | 日韩视频中文字幕 | 亚洲一区二区在线电影 | 久久精品二区 | 日韩欧美综合在线 | 国产精品欧美久久久久一区二区 | 亚洲精品一区二区三区四区高清 | 免费在线观看一级毛片 | 国产96精品久久久 | 成人欧美一区二区三区在线播放 | 本道综合精品 | 日本一区二区精品 | 久久综合九色综合欧美狠狠 | 91小视频| 91影院在线观看 | 综合一区二区三区 | 国产真实精品久久二三区 | 91久久久久久久久久久久久久 | 免费av在线 | 午夜影院在线观看 | 亚洲精品久久久久久下一站 | 国产精品免费在线 | 欧美激情视频一区二区三区在线播放 | 在线观看免费的av | 色综合国产 | 嫩草私人影院 | 欧美在线小视频 | 国产日韩欧美一区二区在线观看 | 国产情侣一区二区三区 | 国产1级片 | 成人激情视频免费观看 | 很黄很色很爽的视频 | 国产一区中文字幕 | 亚洲 欧美 日韩在线 | 国产日韩欧美一区二区 | 欧美视频一级 | 日韩 国产 在线 | 国产乱视频 | 精品久久精品 | 国产精品九九久久99视频 | 免费观看一级特黄欧美大片 | 久久一日本道色综合久久 | 人人玩人人干 | 日本视频一区二区三区 | 欧美日韩在线观看视频 | 一级a毛片 | 高清一区二区三区 | 亚洲色图88 | 亚洲国产高清在线 | 亚洲一区二区三区在线 | 日韩免费一区 | 99精品视频免费在线观看 | 91色在线观看 | 一区二区在线免费观看 | av在线中文 | 91精品国产高清久久久久久久久 | 国产精品九九九 | 国产精品久久久久久久久久久久久 | 天天色天天色 | 国产欧美精品一区二区三区 | 99re视频在线 | 国产精品亚洲一区二区三区在线 | 中文字幕亚洲一区二区三区 | 国产精品99久久久久久www | 精品国产青草久久久久福利 | 亚洲区在线 | 成人a视频在线观看 | 欧美久热 | 久草毛片 | 亚洲精选一区二区 | 碰在线视频 | 夜夜天天 | 国产激情在线视频 | 欧美性18| 日韩精品一区二区三区 | 国产精品永久在线 | 日日噜 | 2019天天干夜夜操 | 久久久国产一区二区 | h在线看 | 一级一片在线观看 | 一区二区在线看 | 爱爱精品| 品久久久久久久久久96高清 | 免费午夜电影 | 国产96在线视频 | 91偷拍精品一区二区三区 | 精品久久久久久久久久久久久久 | 精品国产欧美 | 999在线观看精品免费不卡网站 | 成人h动漫精品一区二区器材 | 欧美一区二区二区 | 亚洲精品久久 | 中国大陆高清aⅴ毛片 | 免费av电影在线观看 | 激情久久久久 | 久久情趣视频 | 特黄一级| 九九综合九九 | 国产精品久久久久久久浪潮网站 | 国产一区二区三区在线 | 成人一区二区在线 | 久久久久久免费毛片精品 | 免看一级一片 | www.日韩.com| 欧美激情精品久久久久久 | 在线观看视频一区二区 | 日韩二区三区 | 国产精品第一 | 成人黄视频在线观看 | 蜜桃精品久久久久久久免费影院 | 成人在线网 | 久久精品欧美一区二区三区不卡 | 狠狠的日 | 国产精品一区在线观看 | 99视频在线 | 久久精品一区二区 | 欧美在线综合 | 9久久精品 | 超碰天堂 | 国产日韩一区 | 国产亚洲精品美女久久久久久久久久 | 蜜桃免费一区二区三区 | 天天干狠狠干 | 2018国产大陆天天弄 | 免费观看a视频 | 欧美另类一区二区 | 男人的天堂久久 | 日韩电影免费在线观看中文字幕 | 欧美激情视频一区二区三区在线播放 | 亚洲视频在线观看免费 | 日韩视频在线免费播放 | 99热精品久久 | 一区二区免费看 | 中文字幕亚洲一区 | 日韩一区二区三区在线视频 | 日韩在线视频观看 | 嫩草影院在线观看91麻豆 | 精品1区 | 亚洲www视频 | 欧美精品区 | h片在线 | 欧美日韩专区 | 国产精品一区二区在线 | 久久精品国产一区二区三区不卡 | 亚洲成人网络 | 色视频www在线播放国产人成 | 高清av网站 | 免费大片黄在线观看 | h视频免费观看 | 久久福利| 在线看片日韩 | 国产在线精品一区二区三区 | 日韩成人免费 | 日日骚av | 中出片| 一区二区三区四区免费观看 | 国产一级视频在线播放 | 中文字幕久久精品 | 国产精品久久久久永久免费观看 | 农村末发育av片四区五区 | 精品一区二区三区四区五区 | 亚洲综合一区二区 | 欧美日韩国产在线观看 | 亚洲精品久久久 | 国产精品a一区二区三区网址 | 日韩中文字幕无码一区二区三区 | 久久视频免费在线 | 国产亚洲成av人片在线观看桃 | 亚洲av一级毛片 | 日韩伦理一区二区 | 依人久久| 国产精品视频免费看 | 成人黄色片网站 | 久久2018 | 91精品中文字幕一区二区三区 | 国产精品第52页 | 免费黄色在线看 | 九一精品 | 亚洲成av人片在线观看无码 | 国产一级淫片a级aaa | 天天综合7799精品影视 | 欧美free性| 国产精品欧美日韩在线观看 | 久久久久久久久99精品 | 狠狠操狠狠干 | 国产伦精品一区二区三区四区视频 | 久久国产一区二区 | 久久久精品欧美 | 懂色av一区二区三区在线播放 | 日韩中文字幕无码一区二区三区 | 国产精品久久久 | 日韩精品三区 | www.成人 | 久久久久久久久国产 | 欧美精品影院 | 国产精品一区二区久久 | 日本一二三区在线 | 91精品一区二区三区久久久久久 | 99这里只有精品 | 精品视频二区 | 日日干天天干 | 一级视频在线免费观看 | 99在线免费观看 | 国产综合久久久久久鬼色 | 黑人巨大精品欧美一区二区免费 | 色婷综合网 | 中文字幕高清视频 | 亚洲 欧美 日韩在线 | 日韩在线观看中文字幕 | 亚洲毛片网站 | 日本三级一区二区 | 亚洲综合大片69999 | 欧美精品1区2区3区 免费亚洲婷婷 | 欧美激情网址 | 国产精品女人视频 | www.天天草 | 日韩精品一区二区三区视频播放 | 国产精品夜夜春夜夜爽久久电影 | 俺要去97中文字幕 | 日本高清视频在线播放 | 日本一区二区视频 | 91日韩精品一区二区三区 | 午夜免费福利视频 | 日韩一区不卡 | 国产一区二区精品在线 | 青青草一区二区 | 三级视频网站 | 日本特黄特色aaa大片免费 | 久久99国产精品久久99大师 | 中文字幕亚洲欧美日韩在线不卡 | 成人在线视频一区 | 日韩av在线一区二区三区 | 一级一级黄色片 | 久热精品在线视频 | 国产日韩亚洲欧美 | 欧美视频精品在线观看 | 日韩精品在线网站 | 久久99精品久久久 | 精品电影| 久久久久久久国产精品 | 91久久精品国产91久久性色tv | 国产在线精品一区二区三区 | 99久久久免费视频 | 国产免费高清 | 天天插天天射天天干 | 毛片网站在线 | 欧美日韩久久 | 亚洲福利一区 | 男女啪啪免费网站 | 欧美视频三区 | 精品国产99 | 国产精品原创av | 中文字幕99 | 天天操综合网 | www.夜夜骑 | 日韩激情欧美 | 精精国产 | 成人看的免费视频 | 久久伊人成人 | 欧美色性 | 日韩视频在线免费观看 | 嫩草成人影院 | 国产日韩精品视频 | 亚洲一区欧美一区 | 男人天堂视频网 | 欧美在线观看黄 | 精品一区视频 | 日韩精品中文字幕在线观看 | 国产精品久久久久久久毛片 | 日本三级中国三级99人妇网站 | 一区二区三区四区在线 | 日韩精品视频在线播放 | 久久久久久久久99精品 | 亚洲精品一| 亚洲一区二区三区中文字幕 | 久久99精品一区二区三区三区 | 狠狠躁夜夜躁人人爽天天高潮 | 久久成人综合网 | 久久久av| 国产亚洲欧美精品永久 | 亚洲深深色噜噜狠狠网站 | 蜜桃久久av| 久久天堂电影 | 三级色黄 | 欧洲视频一区二区三区 | 极品毛片 | 欧美日韩成人 | www色婷婷 | 久久伊人成人网 | 久久久免费av | 欧美在线国产 | 奇米在线777 | 欧美中文字幕一区 | 欧美卡一卡二 | 毛片a片 | 亚洲永久精品www | 激情五月婷婷综合 | www.亚洲 | 一色视频| 成人黄色a| 人人爱超碰 | av不卡在线播放 | 国产一二区在线观看 | 日韩精品一区二区三区中文字幕 | 色爽女人免费 | 91久久国产综合久久蜜月精品 | 日韩精品一区二区在线观看 | 97国产一区二区精品久久呦 | 日韩视频在线观看中文字幕 | 国产精品夜夜春夜夜爽久久电影 | 91se在线| 日韩精品在线观看视频 | 日本另类αv欧美另类aⅴ | 好姑娘影视在线观看高清 | 色婷婷av一区二区三区大白胸 | 日韩精品 | 国产精品久久久久久久久久三级 | 欧美视频在线一区 | 亚洲午夜视频 | 在线久草 | 国产欧美日韩精品在线 | 91精产国品一二三区在线观看 | 亚洲精品久久久久久久久久久久久 | 在线观看视频一区二区三区 | www.av在线| www视频在线观看 | 国产黄色精品 | 亚洲网站在线观看 | 国产日韩欧美一区 | 香蕉久久久 | 亚洲 欧美日韩 国产 中文 | 福利二区| 天堂av在线免费观看 | 中文字幕国产区 | 国产欧美日韩在线 | 亚洲综合无码一区二区 | 91麻豆精品久久久久蜜臀 | 懂色一区二区三区免费观看 | 亚洲www啪成人一区二区 | 91在线精品秘密一区二区 | 综合久久网 | 91精品国产综合久久久久久丝袜 | 日韩欧美一级精品久久 | 蜜桃一区二区三区 | 亚洲精品在线观看免费 | 国产在线一级片 | 欧美激情自拍偷拍 | 国产艹| 日韩一区二区福利视频 | 久久久久久久久久久网站 | 91亚洲视频 | 久久久国产精品 |