日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

itext7生成pdf教程

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 itext7生成pdf教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 生成的pdf效果?
  • 2.idea創(chuàng)建工程maven工程

    2.1:

    2.2:按照步驟,點(diǎn)擊next

    2.3:

    2.4:

    2.5:

    2.6:maven 配置:file——>setting——>maven

    2.7:本地maven配置文件配置:大家可根據(jù)自己的配置文件進(jìn)行配置。

    <?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --><!--| This is the configuration file for Maven. It can be specified at two levels:|| 1. User Level. This settings.xml file provides configuration for a single user,| and is normally provided in ${user.home}/.m2/settings.xml.|| NOTE: This location can be overridden with the CLI option:|| -s /path/to/user/settings.xml|| 2. Global Level. This settings.xml file provides configuration for all Maven| users on a machine (assuming they're all using the same Maven| installation). It's normally provided in| ${maven.home}/conf/settings.xml.|| NOTE: This location can be overridden with the CLI option:|| -gs /path/to/global/settings.xml|| The sections in this sample file are intended to give you a running start at| getting the most out of your Maven installation. Where appropriate, the default| values (values used when the setting is not specified) are provided.||--> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!-- localRepository| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>--><localRepository>D:\soft\mvn\Repository</localRepository> <!-- interactiveMode| This will determine whether maven prompts you when it needs input. If set to false,| maven will use a sensible default value, perhaps based on some other setting, for| the parameter in question.|| Default: true<interactiveMode>true</interactiveMode>--><!-- offline| Determines whether maven should attempt to connect to the network when executing a build.| This will have an effect on artifact downloads, artifact deployment, and others.|| Default: false<offline>false</offline>--><!-- pluginGroups| This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.| when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers| "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.|--><pluginGroups><!-- pluginGroup| Specifies a further group identifier to use for plugin lookup.<pluginGroup>com.your.plugins</pluginGroup>--></pluginGroups><!-- proxies| This is a list of proxies which can be used on this machine to connect to the network.| Unless otherwise specified (by system property or command-line switch), the first proxy| specification in this list marked as active will be used.|--><proxies><!-- proxy| Specification for one proxy, to be used in connecting to the network.|<proxy><id>optional</id><active>true</active><protocol>http</protocol><username>proxyuser</username><password>proxypass</password><host>proxy.host.net</host><port>80</port><nonProxyHosts>local.net|some.host.com</nonProxyHosts></proxy>--></proxies><!-- servers| This is a list of authentication profiles, keyed by the server-id used within the system.| Authentication profiles can be used whenever maven must make a connection to a remote server.|--><servers><!-- server| Specifies the authentication information to use when connecting to a particular server, identified by| a unique name within the system (referred to by the 'id' attribute below).|| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are| used together.|<server><id>deploymentRepo</id><username>repouser</username><password>repopwd</password></server>--><!-- Another sample, using keys to authenticate.<server><id>siteServer</id><privateKey>/path/to/private/key</privateKey><passphrase>optional; leave empty if not used.</passphrase></server>--></servers><!-- mirrors| This is a list of mirrors to be used in downloading artifacts from remote repositories.|| It works like this: a POM may declare a repository to use in resolving certain artifacts.| However, this repository may have problems with heavy traffic at times, so people have mirrored| it to several places.|| That repository definition will have a unique id, so we can create a mirror reference for that| repository, to be used as an alternate download site. The mirror site will be the preferred| server for that repository.|--><mirrors><!-- mirror| Specifies a repository mirror site to use instead of a given repository. The repository that| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.http://10.16.2.63:8082/nexus/content/repositories/scrcu_ebap_ScaveningPayment/|--><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror></mirrors><!-- profiles| This is a list of profiles which can be activated in a variety of ways, and which can modify| the build process. Profiles provided in the settings.xml are intended to provide local machine-| specific paths and repository locations which allow the build to work in the local environment.|| For example, if you have an integration testing plugin - like cactus - that needs to know where| your Tomcat instance is installed, you can provide a variable here such that the variable is| dereferenced during the build process to configure the cactus plugin.|| As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles| section of this document (settings.xml) - will be discussed later. Another way essentially| relies on the detection of a system property, either matching a particular value for the property,| or merely testing its existence. Profiles can also be activated by JDK version prefix, where a| value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.| Finally, the list of active profiles can be specified directly from the command line.|| NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact| repositories, plugin repositories, and free-form properties to be used as configuration| variables for plugins in the POM.||--><profiles><!-- profile| Specifies a set of introductions to the build process, to be activated using one or more of the| mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>| or the command line, profiles have to have an ID that is unique.|| An encouraged best practice for profile identification is to use a consistent naming convention| for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.| This will make it more intuitive to understand what the set of introduced profiles is attempting| to accomplish, particularly when you only have a list of profile id's for debug.|| This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.<profile><id>jdk-1.4</id><activation><jdk>1.4</jdk></activation><repositories><repository><id>jdk14</id><name>Repository for JDK 1.4 builds</name><url>http://www.myhost.com/maven/jdk14</url><layout>default</layout><snapshotPolicy>always</snapshotPolicy></repository></repositories></profile>--><!--| Here is another profile, activated by the system property 'target-env' with a value of 'dev',| which provides a specific path to the Tomcat instance. To use this, your plugin configuration| might hypothetically look like:|| ...| <plugin>| <groupId>org.myco.myplugins</groupId>| <artifactId>myplugin</artifactId>|| <configuration>| <tomcatLocation>${tomcatPath}</tomcatLocation>| </configuration>| </plugin>| ...|| NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to| anything, you could just leave off the <value/> inside the activation-property.|<profile><id>env-dev</id><activation><property><name>target-env</name><value>dev</value></property></activation><properties><tomcatPath>/path/to/tomcat/instance</tomcatPath></properties></profile>--></profiles><!-- activeProfiles| List of profiles that are active for all builds.|<activeProfiles><activeProfile>alwaysActiveProfile</activeProfile><activeProfile>anotherAlwaysActiveProfile</activeProfile></activeProfiles>--> </settings>

    2.9設(shè)置編譯的包和資源等配置:

    2.10:整個(gè)maven工程創(chuàng)建完畢,然后根據(jù)自己的需要?jiǎng)?chuàng)建文件夾和文件,下面是我自己工程創(chuàng)建的目錄結(jié)構(gòu)

    3 itext7教程

    3.1 由于itext7和itext5還是有很大的不同的,所以我直接跳過了itext5的學(xué)習(xí),直接學(xué)習(xí)的itext7。這里我直接再代碼中解釋每一步的作用,該程序再編寫的時(shí)候參考的文檔有itext7 api 文檔,和itext7 示例文檔。

    api 文檔位置:https://api.itextpdf.com/iText7/java/7.0.4/

    示例文檔位置:https://kb.itextpdf.com/home/it7kb/installation-guidelines/installing-itext-7-pdfhtml-for-java-developers?中的Java安裝指引,例子,常見問題

    3.2 代碼入口

    public static void main(String[] args) {PdfWriter pdfWriter; //創(chuàng)建PdfDocument pdfDocument;//創(chuàng)建Document document;//PdfFont font ;//創(chuàng)建字體try{pdfWriter = new PdfWriter("./blank1.pdf");//加載pdf文件,這是一個(gè)路徑,路徑上有這個(gè)名字的pdf就會(huì)將pdf文件加載到pdfWriter中,沒有pdf文件,就會(huì)創(chuàng)建一個(gè)這個(gè)blank1.pdf 文件。pdfDocument = new PdfDocument(pdfWriter);font = getChineseFont();document = new Document(pdfDocument).setFont(font);Table table = createTable();//創(chuàng)建表格Field[] allFields = getAllFields(getFatherClassField(), getChildClassField(SFJFPdfDto.class));//獲取dto 對(duì)象中所有的屬性orderFiles(allFields,testMap(),font,table);//處理打印順序document.add(table);document.close();}catch(Exception e){e.printStackTrace();}}

    ?

  • 我們創(chuàng)建一個(gè)PdfWriter實(shí)例。PdfWriter是可以寫入PDF文件的對(duì)象。它對(duì)正在編寫的PDF文檔的實(shí)際內(nèi)容了解不多。在PdfWriter不知道文件是什么,它只是寫入不同的文件部分和不同的對(duì)象組成一個(gè)有效的文件,一旦文件結(jié)構(gòu)已完成。在這種情況下,我們傳遞了一個(gè)String名為的參數(shù),例如dest,其中包含文件的路徑results/chapter01/hello_world.pdf。構(gòu)造函數(shù)還接受OutputStreamas參數(shù)。例如:如果我們要編寫一個(gè)Web應(yīng)用程序,則可以創(chuàng)建一個(gè)ServletOutputStream;。如果我們想在內(nèi)存中創(chuàng)建PDF文檔,可以使用ByteArrayOutputStream;。等等。

  • 該P(yáng)dfWriter知道寫什么,因?yàn)樗鼈陕牭絇dfDocument。該P(yáng)dfDocument管理是添加的內(nèi)容,在分配不同頁面的內(nèi)容,并跟蹤任何信息相關(guān)的內(nèi)容。在第7章中,我們將發(fā)現(xiàn)人們可以聽見各種各樣的PdfDocument類PdfWriter。

  • 創(chuàng)建PdfWriter和之后PdfDocument,就可以完成所有針對(duì)PDF的低級(jí)代碼。我們創(chuàng)建一個(gè)Document以PdfDocumentas作為參數(shù)的。現(xiàn)在有了document對(duì)象,我們就可以忘記正在創(chuàng)建PDF。然后將該段落添加到document對(duì)象中。

  • 我們關(guān)閉document。我們的PDF已創(chuàng)建。--1.2.3.4 是https://kb.itextpdf.com/home/it7kb/ebooks/itext-7-jump-start-tutorial-for-java/chapter-1-introducing-basic-building-blocks?中電子書中java 快速入門教程中解釋,大家有疑惑的話可以打開網(wǎng)址查看快速入門教程,這里就不詳細(xì)寫這些解釋。? ?

  • 3.3 字段操作 由于將公共字段都放入了父類的dto中,所以這里將兩個(gè)類中的字段合并,組成一個(gè)新的字段數(shù)組,不懂getDeclaredFields()(獲取類中以private關(guān)鍵子修飾的屬性,不能獲取到繼承的私有屬性),getFields()(只能獲取到public 修飾的屬性)

    /*** 獲取父類中的字段* @return*/public static Field[] getFatherClassField(){return PdfDto.class.getDeclaredFields();}/*** 獲取子類中的字段* @param Clazz* @return*/public static Field[] getChildClassField(Class<?> Clazz){return Clazz.getDeclaredFields();}/*** 合并字段* @param a* @param b* @return*/public static Field[] getAllFields(Field[] a,Field[] b){//將a中的值復(fù)制到fields中,并指定長(zhǎng)度為 a,b相加的長(zhǎng)度Field[] fields = Arrays.copyOf(a, a.length + b.length);//將b中的數(shù)據(jù)復(fù)制到fields中--從b數(shù)組中的第一個(gè)開始復(fù)制,fields 從a長(zhǎng)度的地方接著復(fù)制,復(fù)制b的長(zhǎng)度結(jié)束System.arraycopy(b,0,fields,a.length,b.length);return fields;}

    3.4:設(shè)置字體

    /*** 設(shè)置字體* itext7 中不支持中文字體的,網(wǎng)上好多通用的設(shè)置字體也不好使用,這里使用本地系統(tǒng)中的黑體,解決中文字體不顯示的問題* @return*/public static PdfFont getChineseFont() {PdfFont font;try {font = PdfFontFactory.createFont("D:\\soft\\mvn\\project\\pdfDemo\\target\\classes\\STSONG.TTF", PdfEncodings.IDENTITY_H, false);return font;} catch (IOException e) {System.out.println("字體創(chuàng)建失敗!原因:"+e.getMessage()); // e.printStackTrace();return null;}}

    3.5:設(shè)置樣式

    /*** 設(shè)置樣式 * @return*/public static Style getStyle(){Border border = new DashedBorder(1);//設(shè)置邊框 -這里設(shè)置的是虛線邊框Style style = new Style();style.setBorderBottom(border);return style;}

    3.6:創(chuàng)建Cell和表格

    /*** 創(chuàng)建沒有邊框的Cell --設(shè)置字體大小為8,內(nèi)邊距設(shè)置成0,邊框設(shè)置為無邊框* @return*/public static Cell getCellNoBorder(){return new Cell().setFontSize(8).setPaddings(0,0,0,0).setBorder(Border.NO_BORDER);//setBorder(Border.)}/*** 獲取上邊框?yàn)樘摼€的cell--因?yàn)槟J(rèn)情況下,邊框默認(rèn)是黑色實(shí)線邊框,這里要把上邊框設(shè)置成虛線并設(shè)置字體* @return*/public static Cell getCellDashedBorder(){return new Cell().addStyle(new Style().setBorderTop(new DashedBorder(1))).setBorder(Border.NO_BORDER).setFontSize(8);}/*** 創(chuàng)建兩列的表格并插入圖片* @return*/public static Table createTable(){Image img;try {img = new Image(ImageDataFactory.create("D:\\soft\\mvn\\project\\pdfDemo\\src\\main\\resources\\df1b9462175f4ed825713e3307b0077.jpg"));//創(chuàng)建圖片-加載路徑中的圖片} catch (MalformedURLException e) {System.out.println("添加圖像失敗!");img=null;}return new Table(2).//創(chuàng)建兩列的表格setWidthPercent(100).//表格在pdf整個(gè)頁面的寬度百分比,這個(gè)值越小,整個(gè)個(gè)pdf表格越小,越靠近左邊(這樣說可能不對(duì),大家可以試下)setMargins(20,150,20,150).//設(shè)置外邊距addCell(new Cell(1,2).add(img.setAutoScale(true)));//設(shè)置圖片在第一行表格中,cell(1,2) 代表這一行,有兩列合并成一列,圖像設(shè)置成自適應(yīng)。這里有一個(gè)問題,就是當(dāng)圖像設(shè)置成自適應(yīng)的時(shí)候通過new Table(new float[]{4,6})——?jiǎng)?chuàng)建兩列的表格,列長(zhǎng)度就是每個(gè)數(shù)組長(zhǎng)度 創(chuàng)建的表格就會(huì)出現(xiàn)表格列長(zhǎng)度改變的問題。}

    3.7:生成表格

    /*** 排序并生成指定樣式的表格* @param a* @param map* @param font* @param table*/public static void orderFiles(Field[] a,Map<String,Object> map,PdfFont font,Table table){int count = 1;//計(jì)算索引用for (Field field : a) { //遍歷模板字段pdfValue annotation = field.getDeclaredAnnotation(pdfValue.class);//獲取字段屬性上的注釋if (count==annotation.order()){//注釋中的字段注解值做順序校驗(yàn)if (0==annotation.typeFile()){//如果是沒有邊框的Celltable.addCell(getCellNoBorder().add(FieldRefName.getDesc(field.getName())).setFont(font));//--這里設(shè)置字體是中文字體table.addCell(getCellNoBorder().add(map.get(field.getName())==null?"":map.get(field.getName()).toString()).setFont(font).setTextAlignment(TextAlignment.RIGHT));//字體樣式右對(duì)齊,默認(rèn)是左對(duì)齊的}else {//上邊框是虛線的表table.addCell(getCellDashedBorder().add(FieldRefName.getDesc(field.getName())).setFont(font));table.addCell(getCellDashedBorder().add(map.get(field.getName())==null?"":map.get(field.getName()).toString()).setFont(font).setTextAlignment(TextAlignment.RIGHT));}count++;}else {System.out.println("打印小票數(shù)據(jù)缺失,請(qǐng)檢查數(shù)據(jù)中是否包含:"+field.getName()+"字段!");}}}

    3.8:測(cè)試map

    static Map<String,Object> testMap(){Map<String,Object> map = new HashMap<>();map.put("mchtName","息烽稅費(fèi)");map.put("mchtCode","287000010000030043");map.put("ylMchtCode","287000010000030089");map.put("termId","20100000001");map.put("oprUser","請(qǐng)濃郁");map.put("cardNo","6226320000000000000034");map.put("cardBankName","玉屏線農(nóng)信支行");map.put("acquiringBankName","玉屏稅費(fèi)繳費(fèi)");map.put("txnTypeName","稅費(fèi)繳費(fèi)");map.put("payUnitName","玉屏稅費(fèi)機(jī)構(gòu)");map.put("payUnitNum","6226320000000000000001");map.put("userName","六天");map.put("penalSum","23.8");map.put("orderId","IFSP20200404222356000000002");map.put("batchId","0000000001");map.put("voucherId","IFSP20200404222356000000001");map.put("refNo","IFSP00000000001");map.put("dateTime","2020/03/04 22:23:56");map.put("txnAmt","34.9");map.put("remark","小票打印");map.put("signName","明天和");return map;}

    3.9:從3.1到3.8 需要放置到一個(gè)類中,字段映射:

    package pdfDemo.bean;public enum FieldRefName {MCHTNAME("mchtName","商戶名:"),MCHTCODE("mchtCode","商戶號(hào):"),YLMCHTCODE("ylMchtCode","銀聯(lián)商戶號(hào):"),TERMID("termId","終端號(hào):"),OPRUSER("oprUser","操作員:"),CARDNO("cardNo","銀行卡號(hào):"),CARDBANKNAME("cardBankName","銀行卡開戶行:"),ACQUIRINGBANKNAME("acquiringBankName","收單銀行:"),TXNTYPENAME("txnTypeName","交易類型:"),PAYUNITNAME("payUnitName","支付機(jī)構(gòu)名稱:"),PAYUNITNUM("payUnitNum","支付機(jī)構(gòu)編碼:"),USERNAME("userName","用戶名:"),PENALSUM("penalSum","違約金:"),ORDERID("orderId","訂單號(hào):"),BATCHID("batchId","批次號(hào):"),VOUCHERID("voucherId","憑證號(hào):"),REFNO("refNo","參考號(hào):"),DATETIME("dateTime","日期/時(shí)間:"),TXNAMT("txnAmt","金額:"),REMARK("remark","備注:"),SIGNNAME("signName","簽名:");private String fieldName;private String fieldNameDesc;FieldRefName(String fieldName, String fieldNameDesc) {this.fieldName = fieldName;this.fieldNameDesc = fieldNameDesc;}public String getFieldName() {return fieldName;}public void setFieldName(String fieldName) {this.fieldName = fieldName;}public String getFieldNameDesc() {return fieldNameDesc;}public void setFieldNameDesc(String fieldNameDesc) {this.fieldNameDesc = fieldNameDesc;}/*** 獲取desc* @param key* @return*/public static String getDesc(String key){for (FieldRefName fieldRefName : FieldRefName.values()) {if (fieldRefName.fieldName.equals(key)){return fieldRefName.fieldNameDesc;}}return null;} }

    3.10:自定義注解:

    package pdfDemo.bean;import java.lang.annotation.*;@Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface pdfValue {int order() default 1;int typeFile() default 0;//0-普通 不用邊框 1-上邊框虛線}

    3.11:父類dto:

    package pdfDemo.bean;public class PdfDto {@pdfValue(order = 1,typeFile = 1)private String mchtName;@pdfValue(order = 2,typeFile = 0)private String mchtCode;@pdfValue(order = 3,typeFile = 0)private String ylMchtCode;@pdfValue(order = 4,typeFile = 0)private String termId;@pdfValue(order = 5,typeFile = 0)private String oprUser;public String getMchtName() {return mchtName;}public void setMchtName(String mchtName) {this.mchtName = mchtName;}public String getMchtCode() {return mchtCode;}public void setMchtCode(String mchtCode) {this.mchtCode = mchtCode;}public String getYlMchtCode() {return ylMchtCode;}public void setYlMchtCode(String ylMchtCode) {this.ylMchtCode = ylMchtCode;}public String getTermId() {return termId;}public void setTermId(String termId) {this.termId = termId;}public String getOprUser() {return oprUser;}public void setOprUser(String oprUser) {this.oprUser = oprUser;} }

    3.12:子類dto

    package pdfDemo.bean;public class SFJFPdfDto extends PdfDto {@pdfValue(order = 6,typeFile = 1)private String cardNo;@pdfValue(order = 7,typeFile = 0)private String cardBankName;@pdfValue(order = 8,typeFile = 0)private String acquiringBankName;@pdfValue(order = 9,typeFile = 0)private String txnTypeName;@pdfValue(order = 10,typeFile = 0)private String payUnitName;@pdfValue(order = 11,typeFile = 0)private String payUnitNum;@pdfValue(order = 12,typeFile = 0)private String userName;@pdfValue(order = 13,typeFile = 0)private String penalSum;//違約金@pdfValue(order = 14,typeFile = 0)private String orderId;//訂單號(hào)@pdfValue(order = 15,typeFile = 0)private String batchId;//批次號(hào)@pdfValue(order = 16,typeFile = 0)private String voucherId;//憑證號(hào)@pdfValue(order = 17,typeFile = 0)private String refNo;//參考號(hào)@pdfValue(order = 18,typeFile = 0)private String dateTime; //日期/時(shí)間@pdfValue(order = 19,typeFile = 0)private String txnAmt; //金額@pdfValue(order = 20,typeFile = 1)private String remark;//備注@pdfValue(order = 21,typeFile = 1)private String signName;//簽名public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}public String getCardBankName() {return cardBankName;}public void setCardBankName(String cardBankName) {this.cardBankName = cardBankName;}public String getAcquiringBankName() {return acquiringBankName;}public void setAcquiringBankName(String acquiringBankName) {this.acquiringBankName = acquiringBankName;}public String getTxnTypeName() {return txnTypeName;}public void setTxnTypeName(String txnTypeName) {this.txnTypeName = txnTypeName;}public String getPayUnitName() {return payUnitName;}public void setPayUnitName(String payUnitName) {this.payUnitName = payUnitName;}public String getPayUnitNum() {return payUnitNum;}public void setPayUnitNum(String payUnitNum) {this.payUnitNum = payUnitNum;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPenalSum() {return penalSum;}public void setPenalSum(String penalSum) {this.penalSum = penalSum;}public String getOrderId() {return orderId;}public void setOrderId(String orderId) {this.orderId = orderId;}public String getBatchId() {return batchId;}public void setBatchId(String batchId) {this.batchId = batchId;}public String getVoucherId() {return voucherId;}public void setVoucherId(String voucherId) {this.voucherId = voucherId;}public String getRefNo() {return refNo;}public void setRefNo(String refNo) {this.refNo = refNo;}public String getDateTime() {return dateTime;}public void setDateTime(String dateTime) {this.dateTime = dateTime;}public String getTxnAmt() {return txnAmt;}public void setTxnAmt(String txnAmt) {this.txnAmt = txnAmt;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public String getSignName() {return signName;}public void setSignName(String signName) {this.signName = signName;} }

    3.13:3.2-3.8總和在一起

    package pdfDemo.service;import com.itextpdf.io.font.PdfEncodings; import com.itextpdf.io.image.ImageDataFactory; import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.Style; import com.itextpdf.layout.border.Border; import com.itextpdf.layout.border.DashedBorder; import com.itextpdf.layout.element.Cell; import com.itextpdf.layout.element.Image; import com.itextpdf.layout.element.Table; import com.itextpdf.layout.property.TextAlignment; import pdfDemo.bean.FieldRefName; import pdfDemo.bean.PdfDto; import pdfDemo.bean.SFJFPdfDto; import pdfDemo.bean.pdfValue;import java.io.IOException; import java.lang.reflect.Field; import java.net.MalformedURLException; import java.util.Arrays; import java.util.HashMap; import java.util.Map;public class Pdfdemo1 {public static void main(String[] args) {PdfWriter pdfWriter;PdfDocument pdfDocument;Document document;PdfFont font ;try{pdfWriter = new PdfWriter("./blank1.pdf");pdfDocument = new PdfDocument(pdfWriter);font = getChineseFont();document = new Document(pdfDocument).setFont(font);Table table = createTable();Field[] allFields = getAllFields(getFatherClassField(), getChildClassField(SFJFPdfDto.class));orderFiles(allFields,testMap(),font,table);document.add(table);document.close();}catch(Exception e){e.printStackTrace();}}public void Handler(Map<String,Object> reqMap){//獲取子Dto中的字段Field[] fields = SFJFPdfDto.class.getFields();for (Field field : fields) {System.out.println(field.getName());}}/*** 獲取父類中的字段* @return*/public static Field[] getFatherClassField(){return PdfDto.class.getDeclaredFields();}/*** 獲取子類中的字段* @param Clazz* @return*/public static Field[] getChildClassField(Class<?> Clazz){return Clazz.getDeclaredFields();}/*** 合并字段* @param a* @param b* @return*/public static Field[] getAllFields(Field[] a,Field[] b){//將a中的值復(fù)制到fields中,并指定長(zhǎng)度為 a,b相加的長(zhǎng)度Field[] fields = Arrays.copyOf(a, a.length + b.length);//將b中的數(shù)據(jù)復(fù)制到fields中--從b數(shù)組中的第一個(gè)開始復(fù)制,fields 從a長(zhǎng)度的地方接著復(fù)制,復(fù)制b的長(zhǎng)度結(jié)束System.arraycopy(b,0,fields,a.length,b.length);return fields;}/*** 設(shè)置字體* @return*/public static PdfFont getChineseFont() {PdfFont font;try {font = PdfFontFactory.createFont("D:\\soft\\mvn\\project\\pdfDemo\\target\\classes\\STSONG.TTF", PdfEncodings.IDENTITY_H, false);return font;} catch (IOException e) {System.out.println("字體創(chuàng)建失敗!原因:"+e.getMessage()); // e.printStackTrace();return null;}}/*** 設(shè)置樣式* @return*/public static Style getStyle(){Border border = new DashedBorder(1);Style style = new Style();style.setBorderBottom(border);return style;}/*** 創(chuàng)建沒有邊框的Cell* @return*/public static Cell getCellNoBorder(){return new Cell().setFontSize(8).setPaddings(0,0,0,0).setBorder(Border.NO_BORDER);//setBorder(Border.)}/*** 獲取上邊框?yàn)樘摼€的cell* @return*/public static Cell getCellDashedBorder(){return new Cell().addStyle(new Style().setBorderTop(new DashedBorder(1))).setBorder(Border.NO_BORDER).setFontSize(8);}/*** 創(chuàng)建兩列的表格* @return*/public static Table createTable(){Image img;try {img = new Image(ImageDataFactory.create("D:\\soft\\mvn\\project\\pdfDemo\\src\\main\\resources\\df1b9462175f4ed825713e3307b0077.jpg"));} catch (MalformedURLException e) {System.out.println("添加圖像失敗!");img=null;}return new Table(2).setWidthPercent(100).setMargins(20,150,20,150).addCell(new Cell(1,2).add(img.setAutoScale(true)));//創(chuàng)建表格}/*** 排序并生成指定樣式的表格* @param a* @param map* @param font* @param table*/public static void orderFiles(Field[] a,Map<String,Object> map,PdfFont font,Table table){int count = 1;//計(jì)算索引用for (Field field : a) {pdfValue annotation = field.getDeclaredAnnotation(pdfValue.class);if (count==annotation.order()){if (0==annotation.typeFile()){table.addCell(getCellNoBorder().add(FieldRefName.getDesc(field.getName())).setFont(font));table.addCell(getCellNoBorder().add(map.get(field.getName())==null?"":map.get(field.getName()).toString()).setFont(font).setTextAlignment(TextAlignment.RIGHT));}else {table.addCell(getCellDashedBorder().add(FieldRefName.getDesc(field.getName())).setFont(font));table.addCell(getCellDashedBorder().add(map.get(field.getName())==null?"":map.get(field.getName()).toString()).setFont(font).setTextAlignment(TextAlignment.RIGHT));}count++;}else {System.out.println("打印小票數(shù)據(jù)缺失,請(qǐng)檢查數(shù)據(jù)中是否包含:"+field.getName()+"字段!");}}}static Map<String,Object> testMap(){Map<String,Object> map = new HashMap<>();map.put("mchtName","息烽稅費(fèi)");map.put("mchtCode","287000010000030043");map.put("ylMchtCode","287000010000030089");map.put("termId","20100000001");map.put("oprUser","請(qǐng)濃郁");map.put("cardNo","6226320000000000000034");map.put("cardBankName","玉屏線農(nóng)信支行");map.put("acquiringBankName","玉屏稅費(fèi)繳費(fèi)");map.put("txnTypeName","稅費(fèi)繳費(fèi)");map.put("payUnitName","玉屏稅費(fèi)機(jī)構(gòu)");map.put("payUnitNum","6226320000000000000001");map.put("userName","六天");map.put("penalSum","23.8");map.put("orderId","IFSP20200404222356000000002");map.put("batchId","0000000001");map.put("voucherId","IFSP20200404222356000000001");map.put("refNo","IFSP00000000001");map.put("dateTime","2020/03/04 22:23:56");map.put("txnAmt","34.9");map.put("remark","小票打印");map.put("signName","明天和");return map;}}

    總結(jié):itext7和itext5 相比,實(shí)現(xiàn)更加的靈活了,里面對(duì)itext5很多的方法進(jìn)行改進(jìn),創(chuàng)建表格和form表單跟家輕松和快捷

    ----------------------------------------------------------------------后續(xù)更新更多的實(shí)現(xiàn)----------------------------------------------------------------------

    總結(jié)

    以上是生活随笔為你收集整理的itext7生成pdf教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    在线高清 | 日韩丝袜视频 | 久草在线在线精品观看 | 97在线视频免费看 | 天天干天天做天天操 | 麻豆一级视频 | 永久黄网站色视频免费观看w | 久久精品爱视频 | 久久不射网站 | 国产精品日韩久久久久 | 欧美日韩一区二区视频在线观看 | 国产美女精品在线 | 欧美va日韩va | 国产98色在线 | 日韩 | 午夜色大片在线观看 | 国产在线国偷精品产拍 | 精品国产一区二区三区在线 | 色夜影院 | 96久久欧美麻豆网站 | 久久这里只有精品视频99 | 日韩精品视频免费 | 五月开心网 | www.伊人网 | 日韩激情在线视频 | 天天色草| 久久99精品国产麻豆宅宅 | 国产一区二区三区午夜 | 最近中文字幕视频网 | 久久久久久欧美二区电影网 | 久久久久黄色 | 久久精品国产99国产 | 久久夜靖品 | 中文字幕五区 | 亚洲片在线资源 | 一区在线观看 | 久久久久久久久久久免费视频 | a色视频 | 亚洲欧美精品一区二区 | 91最新中文字幕 | 国产精品久免费的黄网站 | 国产精品久久久久久一区二区 | 国产精品xxxx18a99| 亚洲网久久 | 一区二区三区四区五区在线 | 久久精品久久精品久久精品 | 在线观看91 | 亚洲久草网 | 国产精品久久久99 | 91精品一区在线观看 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 91精品啪在线观看国产线免费 | 成人av电影免费在线播放 | 91精品国产99久久久久久红楼 | 激情综合中文娱乐网 | 欧美天堂影院 | 粉嫩av一区二区三区免费 | 91九色在线 | 久久经典国产视频 | 中文字幕在线观看第二页 | 日韩精品一区二区免费视频 | a级一a一级在线观看 | 98超碰人人 | 最新婷婷色 | av在线不卡观看 | 亚洲免费a | 色偷偷888欧美精品久久久 | 欧美少妇xxxxxx | 亚洲精品综合一二三区在线观看 | 97视频免费观看2区 亚洲视屏 | 免费视频三区 | 国内精品久久久久久久久久清纯 | 亚洲视频在线观看网站 | v片在线看 | 久久久精华网 | 激情文学丁香 | www.久久免费 | 久久人人爽人人爽人人片 | 亚洲精品福利在线观看 | 一级黄色免费网站 | 久久天天综合网 | 日韩欧美在线免费 | 天天色综合久久 | 天天天色综合a | 久久99精品久久只有精品 | 伊人资源站 | 久久久久久久久影院 | 久久久资源| 久久久污 | 久久综合五月天婷婷伊人 | 国产精品一区二区三区免费看 | 丁香婷婷激情啪啪 | 午夜精品一区二区三区在线播放 | 日韩极品在线 | 在线亚洲观看 | 欧美aaa级片 | 久久精品激情 | 国内一级片在线观看 | 国产精品自在欧美一区 | 日本精品一区二区三区在线播放视频 | 色婷婷综合久久久 | 亚洲伦理中文字幕 | 五月婷综合网 | 欧美日韩免费一区二区三区 | 国产又粗又长的视频 | 中文电影网 | 超碰公开97 | www.久久91 | 国产精品永久免费视频 | 91亚瑟视频 | 2019av在线视频 | 国产精品久久久久久久7电影 | 亚洲国产大片 | 久久一精品 | 久久成年人视频 | 黄色毛片视频免费观看中文 | 国产91精品一区二区绿帽 | 成人97人人超碰人人99 | 日韩高清在线一区二区 | 国产黄色片久久 | 在线免费av播放 | 五月婷婷一区二区三区 | 狠狠狠狠狠干 | 欧美精品国产综合久久 | 亚洲精品伦理在线 | 免费看的黄色 | 国产麻豆剧果冻传媒视频播放量 | 热久久免费视频精品 | 中文字幕在线观看视频免费 | 欧美日韩xxxxx | 久久尤物电影视频在线观看 | 欧美一区免费观看 | 欧美极度另类性三渗透 | 亚洲最大av | 中文在线a在线 | 亚洲电影久久久 | 亚洲精品mv在线观看 | 亚洲一区二区三区在线看 | av福利网址导航大全 | 在线免费视频 你懂得 | 夜夜视频欧洲 | 五月天狠狠操 | 美女福利视频一区二区 | 色久av | 亚洲在线看| 五月的婷婷 | 成人黄在线观看 | 日韩视频中文字幕 | 成人免费视频网站在线观看 | 亚洲国产精品成人精品 | 国产成人一区二 | 成人小视频在线观看免费 | 亚州国产精品久久久 | 69精品视频 | avwww在线| 91精品视频免费看 | 国产黄色美女 | 99热官网| 亚洲精品白浆高清久久久久久 | 韩日三级在线 | 日韩理论电影网 | 日韩欧美aaa| 国产精品麻豆免费版 | 久久成熟 | 91看片看淫黄大片 | 97自拍超碰| 久久免费福利 | 亚洲激情一区二区三区 | 亚洲精品久 | 久草精品网 | 日韩欧美精品一区 | 91尤物在线播放 | 韩国av免费观看 | 天堂av在线 | 99久久久国产精品免费观看 | 久草久热 | 超碰在线人人爱 | 一区二区男女 | 六月丁香婷 | 久久精品中文字幕免费mv | 麻豆91在线观看 | 色婷婷久久久 | 91成人免费电影 | 91av免费在线观看 | 中文字幕一区二区三区在线播放 | 五月婷婷另类国产 | 亚洲精品国产第一综合99久久 | 亚洲国产精品999 | 亚洲精品久久久蜜臀下载官网 | 欧美日本高清视频 | 天天操天天摸天天射 | 这里有精品在线视频 | 综合色婷婷 | 在线三级播放 | 婷婷在线精品视频 | 在线色网站| 91色视频| 日韩av美女| 欧美老人xxxx18 | 国产又粗又猛又黄又爽的视频 | 韩国精品在线观看 | 久久人人爽人人爽人人 | 99久热在线精品 | 天天摸天天舔天天操 | 中文国产成人精品久久一 | 久久免费视频在线观看6 | av成人免费在线 | av黄色成人 | 免费黄色激情视频 | 久久久亚洲精品 | 99久久99久久精品国产片果冰 | av一级网站 | 日本久久久久久久久 | 亚洲一区二区视频在线 | 亚洲日本一区二区在线 | 日韩高清成人在线 | 欧美一级视频在线观看 | 中文字幕在线观看日本 | 亚洲欧美成人综合 | 日日爽天天 | 日韩特黄av | 99热这里精品 | 黄色影院在线播放 | 一区二区三区高清在线观看 | 成人黄色毛片视频 | 亚洲精品tv久久久久久久久久 | 99精品在线免费观看 | 91免费版在线观看 | 在线播放91 | 久久免费精品视频 | 综合久久影院 | 精品久久久久久国产偷窥 | 四虎在线视频免费观看 | 欧美十八 | 国产一区二区精品91 | av在线免费观看黄 | 日本精品一区二区三区在线播放视频 | av免费电影在线观看 | 色婷婷综合久久久中文字幕 | 久久精品999 | 日韩高清不卡一区二区三区 | 草久热| 1000部国产精品成人观看 | 国内丰满少妇猛烈精品播 | a级国产乱理伦片在线观看 亚洲3级 | 欧美日bb| 免费国产在线精品 | 激情视频网页 | 91av美女| 日韩高清dvd | 亚洲天堂色婷婷 | 国产成人性色生活片 | 中文不卡视频在线 | 夜夜摸夜夜爽 | 色先锋资源网 | 99视频精品 | 日韩一区二区三区免费电影 | 黄色大片免费网站 | 亚洲精品在线国产 | 亚洲a成人v | 亚洲日本欧美 | 一区二区三区四区在线免费观看 | 99在线视频观看 | 天天久久夜夜 | 日韩精品不卡 | 久久爱影视i | 亚洲欧洲成人精品av97 | 91在线操 | 久久久久在线视频 | 天天躁天天躁天天躁婷 | 在线观看黄网站 | 色国产在线 | 亚洲成人免费 | 在线播放一区二区三区 | 久草精品在线观看 | 日韩欧美精品免费 | 国产成人精品一区二区三区福利 | 国产亚洲片 | 亚洲精品乱码久久久久久久久久 | 日产乱码一二三区别免费 | 在线观看视频免费大全 | 夜夜躁日日躁狠狠躁 | 69热国产视频 | 在线超碰av | 西西444www大胆高清图片 | 久久观看免费视频 | 手机av电影在线 | 日日日日 | 免费视频97| 国外av在线 | 特级免费毛片 | 亚洲电影成人 | 久久精品国产免费看久久精品 | 日韩在线视频播放 | 国产精品久久久久久久久久了 | 九九热免费精品视频 | 久久久国内精品 | 999久久久久久久久久久 | 国外成人在线视频网站 | 免费在线观看av片 | 久久精品79国产精品 | 日韩大片在线看 | 少妇资源站 | 操操碰 | 在线观看日韩国产 | 成人av网页 | 国产999精品久久久久久绿帽 | 精品美女在线观看 | 在线观看完整版 | 日本精品中文字幕在线观看 | 久章草在线观看 | 日韩不卡高清视频 | 五月婷婷六月综合 | 日本中文字幕视频 | 午夜国产一区二区 | 黄色三级免费 | 成人h动漫精品一区二 | 国产在线观看不卡 | 免费视频久久久久久久 | 综合久久综合久久 | 日av免费 | 色综合中文综合网 | www.色婷婷.com | 99久久精品免费一区 | 欧美一区二区在线 | 免费av影视 | 蜜臀久久99静品久久久久久 | 亚洲成aⅴ人片久久青草影院 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲精品国产精品乱码在线观看 | 在线观看91精品国产网站 | 中文字幕一区二区三区久久 | 天天干人人干 | 天天骚夜夜操 | 中文乱幕日产无线码1区 | 91激情视频在线 | 国产精品久久久久久久电影 | 日韩精品一区二 | 久久在线精品 | 亚洲精品视频一二三 | 深夜福利视频一区二区 | 久久久久国产精品视频 | 久久久久久黄色 | 久久久免费看 | 成人黄色大片在线免费观看 | 91精品久久香蕉国产线看观看 | 成人资源在线观看 | 99久久精品国产毛片 | 午夜精品久久久久久久久久 | 婷婷狠狠操 | 精品亚洲免费 | 最新国产精品拍自在线播放 | 天天色天天爱天天射综合 | av网站免费在线 | 国内精品视频免费 | 精品96久久久久久中文字幕无 | 日夜夜精品视频 | 国产一区网址 | 天天天天射 | 成人在线播放av | 国产精品99久久久久久久久 | 性色av一区二区三区在线观看 | 天天干国产| 在线免费黄网站 | 狠狠色丁香婷婷综合基地 | 久久伊人精品一区二区三区 | 国产美女网站在线观看 | 欧美成人影音 | 久久不卡日韩美女 | 久久一久久 | 亚洲伊人色 | 在线视频精品播放 | 成人午夜精品福利免费 | 九草在线观看 | 在线观看免费av网站 | 日本性xxx | 久久精品国产精品亚洲 | 国产91精品看黄网站在线观看动漫 | 中文字幕乱偷在线 | 在线观看中文字幕 | 激情电影影院 | 狠狠色丁香婷婷综合 | 狠狠色综合网站久久久久久久 | 中文字幕一区二区三区在线观看 | 久久久久日本精品一区二区三区 | 5月丁香婷婷综合 | 色婷婷国产精品一区在线观看 | 中文字幕在线观看不卡 | 中文日韩在线视频 | 在线观看视频一区二区三区 | 96久久久| 视频99爱| 69国产精品视频免费观看 | 干狠狠 | 久久不射网站 | 夜夜躁日日躁狠狠久久88av | 在线观看 亚洲 | 在线黄色免费 | 欧美精品在线观看一区 | 久久网页 | 91亚洲精品乱码久久久久久蜜桃 | 337p欧美| 亚洲欧洲xxxx| 久久激情婷婷 | 久热国产视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 日韩av午夜 | 日韩久久一区二区 | 午夜视频不卡 | 国产日本高清 | 99久久久久成人国产免费 | 亚洲成aⅴ人片久久青草影院 | 亚洲成人黄| 日韩理论视频 | 亚洲精品在线视频网站 | 免费观看一区二区三区视频 | 日韩在线首页 | 免费在线观看一区二区三区 | 96亚洲精品久久 | 国产在线a不卡 | 中文字幕在线有码 | 黄色日视频 | 国产精品自产拍在线观看桃花 | 麻豆一区在线观看 | 亚洲精品日韩在线观看 | 天天操天天干天天爽 | 日韩av一区二区在线播放 | 精品国产一区二区三区久久影院 | 免费在线观看a v | 欧美性猛片, | 婷婷色在线播放 | 亚洲精品久久久久999中文字幕 | 亚洲精品裸体 | 久久久亚洲影院 | 亚洲成人精品 | 五月天中文字幕mv在线 | 国产精品a久久久久 | 日本精品中文字幕 | 五月婷婷操 | 五月天电影免费在线观看一区 | 成人97人人超碰人人99 | 久草精品视频在线播放 | 麻豆视频免费播放 | 天天爽夜夜爽人人爽曰av | 综合在线亚洲 | 日韩中文字幕视频在线 | 黄色不卡av| 正在播放国产一区 | av五月婷婷| 奇米网在线观看 | 亚洲片在线资源 | 天天干天天拍天天操 | 麻豆视频国产在线观看 | 4hu视频| 免费网站观看www在线观看 | 中文高清av | 国产精品久久久久久久久久久杏吧 | 黄色一区二区在线观看 | 伊人婷婷激情 | 久久夜色精品国产欧美乱极品 | 国产综合片 | 日韩a级免费视频 | 91污视频在线 | 欧洲精品二区 | 在线视频精品播放 | 国产美女被啪进深处喷白浆视频 | 日韩精品一区电影 | 日韩电影在线一区 | 国产专区免费 | 免费高清在线观看成人 | 欧美午夜a| 久久狠狠一本精品综合网 | 在线国产福利 | 成人小视频在线观看免费 | 国产免费又爽又刺激在线观看 | 久久精品一二三区白丝高潮 | 黄在线免费看 | 亚洲视频在线看 | a视频免费 | 久久久久久久网 | 久久99精品国产 | 国产精品高潮久久av | 日韩成人邪恶影片 | 久久九九影视网 | 国产夫妻av在线 | 国产精品免费不卡 | 中文久久精品 | av一区二区在线观看中文字幕 | 91精品国产综合久久福利 | 992tv成人免费看片 | 国产视频1区2区 | 中文字幕精 | 国产精品久久一 | va视频在线观看 | avv天堂| 国产r级在线观看 | 婷婷色吧 | 欧美成年人在线观看 | 国产精品久久久久久久婷婷 | 精品91在线 | 99在线观看精品 | 青青草视频精品 | 久久久久久网站 | 国产美女主播精品一区二区三区 | 国产一级免费观看 | 国产亚洲婷婷免费 | 国产中文a | 国语自产偷拍精品视频偷 | 国产系列 在线观看 | 最新影院 | 手机在线视频福利 | 国产伦理一区二区 | 精品国产免费久久 | 久草久草在线观看 | 日韩a级黄色 | 香蕉网在线 | 91在线免费视频观看 | 欧美a视频在线观看 | 99视频国产精品免费观看 | 精品一区 在线 | 免费观看国产精品 | 亚洲午夜精品一区二区三区电影院 | 97视频人人免费看 | 日韩免费电影一区二区 | 日本黄色免费播放 | 久久久精品视频网站 | 国产四虎在线 | 欧美午夜a | 激情在线网址 | 久久神马影院 | 91精品久久久久久综合五月天 | av在线在线| 久草免费在线视频观看 | 久久草| 激情小说网站亚洲综合网 | 日日夜夜精品免费 | 网址你懂的在线观看 | 亚州精品天堂中文字幕 | 在线观看黄色国产 | 国产精品v a免费视频 | 精品久久电影 | 久久精品电影院 | 中文超碰字幕 | 久久久久久久久久久久亚洲 | 欧美aⅴ在线观看 | 精产嫩模国品一二三区 | 国产第一页在线播放 | 欧美日韩一区二区三区在线观看视频 | 六月丁香综合网 | 亚洲首页| 香蕉视频啪啪 | 91av视频导航 | 日韩高清一 | 国产精品国产三级国产aⅴ入口 | 国产一区二区影院 | 欧美日韩免费观看一区=区三区 | 中文字幕之中文字幕 | 日韩电影在线视频 | 亚洲国产片色 | 国产精品久久久久永久免费 | 又色又爽又黄 | 婷婷激情影院 | 成人午夜电影在线 | 91福利国产在线观看 | 国产精品永久免费观看 | 婷婷六月天综合 | 午夜视频在线观看欧美 | 天天综合网~永久入口 | 天天操天天射天天添 | 久久久久久久久久久黄色 | 欧美激情第八页 | 手机在线小视频 | 五月天激情在线 | 国产一级电影 | 丝袜美女在线 | 国产91粉嫩白浆在线观看 | 最近2019年日本中文免费字幕 | 91秒拍国产福利一区 | 久久99深爱久久99精品 | 日日夜操 | 在线日韩一区 | 99免费看片 | 日本在线视频网址 | 日本黄色免费大片 | 黄色av一级 | 久草免费看 | 久久夜视频 | 久久久国产一区 | 国产成人久久精品77777 | 激情在线免费视频 | 日日夜夜精品免费观看 | 在线观看岛国av | 欧美99热| 日韩久久一区 | 久久精彩免费视频 | 天天操天天射天天插 | 日韩欧美一区二区在线 | 国产无套视频 | 91大神在线观看视频 | 亚洲h在线播放在线观看h | 69性欧美 | 国产日韩欧美在线 | 三级黄色在线 | av导航福利| 午夜久久成人 | 不卡的av中文字幕 | 国产亚洲精品成人av久久ww | 日日干日日色 | 日韩va亚洲va欧美va久久 | av电影一区二区三区 | 91久久一区二区 | 99视频在线观看免费 | www成人精品| 日韩精品专区在线影院重磅 | 91中文在线观看 | 激情www| 免费观看全黄做爰大片国产 | av在线免费在线观看 | 国产精品igao视频网网址 | 日韩中文字幕免费视频 | 又黄又爽又色无遮挡免费 | 免费高清在线视频一区· | 狠狠88综合久久久久综合网 | 特级黄录像视频 | 夜夜操狠狠操 | 91禁看片| 国产精品99久久久久久大便 | 国产成人精品综合 | 日韩高清免费在线观看 | av在线网站免费观看 | 九九热只有这里有精品 | 久久精品牌麻豆国产大山 | 亚洲色五月 | 欧美色黄| 欧美一区二区免费在线观看 | 亚洲高清在线观看视频 | 天天夜夜狠狠操 | 黄色网址在线播放 | 一区二区三区精品在线视频 | 在线观看免费色 | 国产精品激情 | 毛片一区二区 | 69精品在线 | 欧美色综合天天久久综合精品 | 日韩二区在线 | 黄网站免费大全入口 | 中文区中文字幕免费看 | 波多野结衣在线观看视频 | 区一区二区三区中文字幕 | 999在线精品 | av天天干| 中文字幕高清视频 | 欧美一级电影在线观看 | 免费看日韩片 | 91视频一8mav | 成人午夜免费福利 | 色婷婷中文 | 激情久久五月天 | 日日日爽爽爽 | 久久免费观看少妇a级毛片 久久久久成人免费 | 亚洲国产中文字幕在线观看 | 久久男人免费视频 | 国产自产在线视频 | 免费看污网站 | 精品久久在线 | 亚洲视频精品在线 | 人人爽久久久噜噜噜电影 | 日批视频在线 | 日韩久久在线 | 西西444www大胆高清视频 | 欧美伦理一区二区三区 | 欧美a在线看 | 欧美在线观看视频一区二区三区 | 午夜国产福利在线 | 午夜手机看片 | 日韩高清片| 天天玩天天干天天操 | 日本中文字幕在线免费观看 | 91尤物在线播放 | 国产97在线看 | 国产亚洲aⅴaaaaaa毛片 | 亚洲精品美女在线观看播放 | 国产精品自产拍在线观看桃花 | 一区二区三区精品在线 | 男女啪啪免费网站 | 日韩成人免费在线观看 | 99久久超碰中文字幕伊人 | 国产在线精品一区 | 欧美 日韩 国产 成人 在线 | 五月开心六月伊人色婷婷 | 国产一区二区视频在线播放 | 色综合久久悠悠 | 亚洲精品在线视频网站 | 中文字幕丰满人伦在线 | 在线精品视频在线观看高清 | 2019中文字幕第一页 | 日韩欧美国产精品 | 国产成人精品av久久 | www.99在线观看 | 三级免费黄 | 五月激情六月丁香 | 成年人在线免费看 | 国产一区私人高清影院 | 国产视频不卡 | 一级黄色免费 | 日韩乱色精品一区二区 | 欧美国产日韩激情 | 精品久久久久亚洲 | 国产精品国产精品 | 国产一级免费观看 | 免费网站在线观看人 | 九九九九色 | 曰韩在线 | 狠狠久久婷婷 | 500部大龄熟乱视频 欧美日本三级 | 国产在线精品一区二区不卡了 | 黄色一级网 | av再线观看 | 日韩伦理一区二区三区av在线 | 国产色网 | 日韩欧美xxxx | 天天色天天干天天色 | 91最新视频 | 亚洲日本va午夜在线电影 | 日韩视频免费 | 97人人模人人爽人人少妇 | 欧美在线a视频 | 黄av资源 | 亚洲国产精品传媒在线观看 | 日日射天天射 | 国产精品久久艹 | 精品久久一二三区 | 99视频在线免费 | 久久天天综合网 | 国产超碰97| 91九色视频国产 | 国产精品自产拍在线观看网站 | 国产精品av一区二区 | 日韩精品一区二区三区外面 | 国产丝袜在线 | 一本色道久久精品 | 在线视频一二三 | 色婷婷丁香 | 久久最新视频 | 天天操天天爽天天干 | 久久只精品99品免费久23小说 | 美女免费视频一区 | 免费黄av | 亚洲干视频在线观看 | 不卡国产在线 | 国产在线高清视频 | 婷婷精品视频 | 国产精品一区二区在线播放 | 91网免费看 | 成人在线观看日韩 | 亚洲v精品 | 国产精品入口a级 | av色综合| 九九有精品 | 国产日本高清 | 99视频在线观看视频 | 成人中文字幕在线观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91在线文字幕| 西西4444www大胆视频 | 日韩av在线高清 | 天天干天天天天 | 国产精品v欧美精品v日韩 | 久久五月婷婷丁香 | 色婷婷六月天 | 又色又爽又激情的59视频 | 亚洲一区日韩精品 | 欧美色噜噜噜 | 色婷婷88av视频一二三区 | 一区二区三区四区五区六区 | 日韩欧美国产成人 | 亚洲一区二区精品3399 | 激情视频免费在线 | 黄色一级免费电影 | 亚洲国产精品va在线看黑人 | 精品视频在线看 | 欧美日韩精品在线播放 | 国产精品久久久久久麻豆一区 | 久久草网站 | 欧美久久久久久久久久久久 | 欧美精品久久久久a | 天天干天天插伊人网 | 久久网页| 日韩欧美在线高清 | 欧美在线日韩在线 | 青草视频在线播放 | 久久婷婷丁香 | 91精品啪啪| 深爱五月网| 日韩三级视频 | 99久久婷婷 | 欧美在线91 | 日韩电影一区二区在线 | 亚洲精品在线免费 | 天天曰天天干 | 国产精品18久久久 | 国产精品久久久久久久久久久久午夜 | 中文字幕在线视频网站 | 丁香六月中文字幕 | 81国产精品久久久久久久久久 | 国产激情电影综合在线看 | av免费观看网址 | 日韩v欧美v日本v亚洲v国产v | 欧美性生活久久 | 精品福利网| 在线观看韩日电影免费 | 国产亚洲欧美精品久久久久久 | 免费看黄的 | 蜜臀久久99精品久久久无需会员 | 亚洲午夜精品一区二区三区电影院 | 日韩欧美在线观看一区 | 免费在线观看黄 | 精品成人在线 | 国产精品久久精品 | 久久国产精品久久精品 | 热99久久精品 | 一级全黄毛片 | 在线观看视频日韩 | 97视频中文字幕 | 中文字幕乱码在线播放 | 中文字幕观看在线 | 香蕉视频免费看 | 啪啪小视频网站 | av一级片| 激情婷婷久久 | 美女视频黄是免费的 | 日韩专区一区二区 | 日韩特黄av| 精品产品国产在线不卡 | 色wwwww| av最新资源| 日韩欧美电影在线观看 | 国产一区二区三区免费在线 | 久热国产视频 | 亚洲精品97 | 九九视频一区 | 97影视 | www天天操 | 91最新中文字幕 | 国产精品自产拍在线观看桃花 | 国内精品一区二区 | 91成人区| 成人久久影院 | 国产精品在线看 | 国产精品激情在线观看 | 中文字幕一区二区三区四区久久 | 中文字幕网址 | 亚洲日本激情 | 国产亚洲成人精品 | 日韩羞羞| 区一区二在线 | 亚洲网久久 | 日韩在观看线 | 欧美亚洲一级片 | 久久国产免费看 | 81精品国产乱码久久久久久 | 国产欧美中文字幕 | 天天躁日日躁狠狠躁av中文 | 最新中文字幕在线观看视频 | 97成人精品区在线播放 | 亚洲极色 | 免费看一级黄色 | 三级av在线 | 五月亚洲综合 | 在线免费视频你懂的 | 狠狠色伊人亚洲综合网站野外 | 亚洲激情影院 | 91在线影视 | 精品国产综合区久久久久久 | 国产中文字幕一区二区 | 久久精品日本啪啪涩涩 | 69精品久久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 综合网在线视频 | 99高清视频有精品视频 | 亚洲一区网| 伊人影院在线观看 | 日日摸日日添日日躁av | 91豆麻精品91久久久久久 | 日韩美在线观看 | 国产一级高清 | 97网| 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 97自拍超碰| 91资源在线视频 | 久久伊人精品天天 | 91精品久久久久 | 亚洲va欧洲va国产va不卡 | 一级黄色片在线播放 | 91麻豆精品国产91久久久使用方法 | 成人app在线免费观看 | 国产三级精品三级在线观看 | 国产精品免费观看网站 | 91精品秘密在线观看 | 狂野欧美激情性xxxx | 亚洲精品午夜久久久 | 中文字幕在线字幕中文 | 欧美日韩三区二区 | 国产一区二区免费在线观看 | 2019中文字幕第一页 | 激情五月***国产精品 | 9在线观看免费高清完整版 玖玖爱免费视频 | 黄色国产在线 | 日日夜夜狠狠干 | 91福利国产在线观看 | 久久综合久久综合这里只有精品 | 主播av在线 | 美女国产在线 | 婷婷激情影院 | www.天天干.com | 在线黄色国产 | 狠狠色丁香婷婷 | 五月天.com| 亚洲精品在线看 | 久久久精品网 | 国产精品精品国产色婷婷 | 精品一区 精品二区 | 免费看三级黄色片 | 日韩高清无线码2023 | 欧美日韩国产一区二区三区 | www免费 | 久久少妇免费视频 | 中文字幕免费观看 | 在线 成人 | 色婷婷综合五月 | 免费在线观看不卡av | 91传媒在线观看 | 国产香蕉97碰碰久久人人 | 日本韩国欧美在线观看 | 成人av高清在线观看 | 国产免费视频一区二区裸体 | 韩国av一区二区三区在线观看 | 在线视频日韩 | 午夜精品一区二区三区免费 | 久久久久成人免费 | 99国产在线| 中文字幕丝袜 | 精品极品在线 | 97色婷婷人人爽人人 | 波多野结衣网址 | 天天操天天摸天天爽 | 亚洲91中文字幕无线码三区 | 黄色小网站在线观看 | 国产三级午夜理伦三级 | 国产精品二区在线观看 | 一区二区三区中文字幕在线 | 色大片免费看 | 久久五月婷婷丁香 | 国产黄a三级三级三级三级三级 | 日韩色av色资源 | 日韩激情免费视频 | 91亚洲欧美激情 | 欧美激情第八页 | 91在线产啪 | 黄色aaa毛片| 欧美在线观看视频免费 | 激情欧美在线观看 | 国产精品尤物视频 | 99热只有精品在线观看 | 成 人 黄 色 视频免费播放 | 国产aa精品 | 中文字幕电影网 | 最近中文国产在线视频 | 91九色蝌蚪视频 | 99精品视频免费看 | 日韩一区二区三 | 亚洲视频 中文字幕 | 国内精品久久久久影院男同志 | 天天射综合网站 | 亚洲精品视频第一页 | 久久久久激情视频 | 99精品热视频 | 午夜丰满寂寞少妇精品 | 亚洲激情视频在线 | 在线97| 国产精品视频999 | 亚洲精品国产免费 | 欧美成年人在线视频 | 欧美美女激情18p | 中文av字幕在线观看 | japanesexxxxfreehd乱熟 | 午夜影视剧场 | 久久优| 一级精品视频在线观看宜春院 | www免费看片com | 国产小视频在线观看免费 | 国产成a人亚洲精v品在线观看 | 天天干 天天摸 天天操 | 色94色欧美 | 五月天综合在线 | 午夜精品一区二区国产 | 国产精品18久久久久久久久久久久 | 91精品1区 | 深爱开心激情 |