├── .gitignore
├── LICENSE.md
├── README.md
└── iText-start
├── iText1-中文输出
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText1.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C01E01_HelloWorld.java
│ ├── C01E02_RickAstley.java
│ ├── C01E03_QuickBrownFox.java
│ ├── C01E04_UnitedStates.java
│ └── UnicodeUtil.java
│ └── resources
│ ├── data
│ └── united_states.csv
│ └── img
│ ├── dog.bmp
│ └── fox.bmp
├── iText1
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText1.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C01E01_HelloWorld.java
│ ├── C01E02_RickAstley.java
│ ├── C01E03_QuickBrownFox.java
│ └── C01E04_UnitedStates.java
│ └── resources
│ ├── data
│ └── united_states.csv
│ └── img
│ ├── dog.bmp
│ └── fox.bmp
├── iText2
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText2.iml
├── pom.xml
└── src
│ └── main
│ └── java
│ ├── C02E01_Axes.java
│ ├── C02E02_GridLines.java
│ ├── C02E03_StarWars.java
│ └── C02E04_StarWarsCrawl.java
├── iText3
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText3.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C03E01_NewYorkTimes.java
│ ├── C03E02_PremierLeague.java
│ └── C03E03_UFO.java
│ └── resources
│ ├── data
│ ├── ny_times_apple.txt
│ ├── ny_times_fb.txt
│ ├── ny_times_inst.txt
│ ├── premier_league.csv
│ └── ufo.csv
│ └── img
│ ├── ny_times_apple.jpg
│ ├── ny_times_fb.jpg
│ └── ny_times_inst.jpg
├── iText4
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText4.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C04E01_01_TextAnnotation.java
│ ├── C04E01_02_LinkAnnotation.java
│ ├── C04E01_03_LineAnnotation.java
│ ├── C04E01_04_TextMarkupAnnotation.java
│ ├── C04E02_JobApplication.java
│ ├── C04E03_CreateAndFill.java
│ ├── C04E04_FillForm.java
│ └── C04E05_FlattenForm.java
│ └── resources
│ └── pdf
│ └── job_application.pdf
├── iText5
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText5.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C05E01_AddAnnotationsAndContent.java
│ ├── C05E02_FillAndModifyForm.java
│ ├── C05E03_AddContent.java
│ └── C05E04_ChangePage.java
│ └── resources
│ └── pdf
│ ├── job_application.pdf
│ └── ufo.pdf
├── iText6
├── .idea
│ ├── compiler.xml
│ ├── libraries
│ │ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ │ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ │ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ │ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ │ ├── Maven__com_itextpdf_io_7_0_3.xml
│ │ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ │ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ │ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ │ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ │ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
│ ├── misc.xml
│ ├── modules.xml
│ └── workspace.xml
├── iText6.iml
├── pom.xml
└── src
│ └── main
│ ├── java
│ ├── C06E01_TheGoldenGateBridge_Scale_Shrink.java
│ ├── C06E02_TheGoldenGateBridge_Tiles.java
│ ├── C06E03_TheGoldenGateBridge_N_up.java
│ ├── C06E04_88th_Oscar_Combine.java
│ ├── C06E05_88th_Oscar_CombineXofY.java
│ ├── C06E06_88th_Oscar_Combine_AddTOC.java
│ ├── C06E07_Combine_Forms.java
│ ├── C06E08_FillOutAndMergeForms.java
│ └── C06E09_FillOutFlattenAndMergeForms.java
│ └── resources
│ ├── data
│ └── united_states.csv
│ └── pdf
│ ├── 88th_noms_announcement.pdf
│ ├── 88th_reminder_list.pdf
│ ├── oscars_movies_checklist_2016.pdf
│ ├── state.pdf
│ ├── subscribe.pdf
│ └── the_golden_gate_bridge.pdf
└── iText7
├── .idea
├── compiler.xml
├── libraries
│ ├── Maven__com_itextpdf_barcodes_7_0_3.xml
│ ├── Maven__com_itextpdf_font_asian_7_0_3.xml
│ ├── Maven__com_itextpdf_forms_7_0_3.xml
│ ├── Maven__com_itextpdf_hyph_7_0_3.xml
│ ├── Maven__com_itextpdf_io_7_0_3.xml
│ ├── Maven__com_itextpdf_kernel_7_0_3.xml
│ ├── Maven__com_itextpdf_layout_7_0_3.xml
│ ├── Maven__com_itextpdf_pdfa_7_0_3.xml
│ ├── Maven__com_itextpdf_sign_7_0_3.xml
│ └── Maven__org_slf4j_slf4j_api_1_7_13.xml
├── misc.xml
├── modules.xml
└── workspace.xml
├── iText7.iml
├── pom.xml
└── src
└── main
├── java
├── C07E01_QuickBrownFox_PDFUA.java
├── C07E02_QuickBrownFox_PDFA_1a.java
├── C07E02_QuickBrownFox_PDFA_1b.java
├── C07E03_UnitedStates_PDFA_3a.java
└── C07E04_MergePDFADocuments.java
└── resources
├── color
└── sRGB_CS_profile.icm
├── data
└── united_states.csv
├── font
├── FreeSans.ttf
└── FreeSansBold.ttf
├── img
├── dog.bmp
└── fox.bmp
└── pdf
├── quick_brown_fox_PDFA-1a.pdf
└── united_states_PDFA-1a.pdf
/.gitignore:
--------------------------------------------------------------------------------
1 | # targert编译文件
2 | iText-start/*/target/
3 | iText-start/*/results/
4 |
5 | ### IntelliJ IDEA ###
6 | .idea
7 | *.iws
8 | *.iml
9 | *.ipr
10 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | This program is free software; you can redistribute it and/or modify
2 | it under the terms of the GNU Affero General Public License version 3
3 | as published by the Free Software Foundation with the addition of the
4 | following permission added to Section 15 as permitted in Section 7(a):
5 | FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
6 | ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT
7 | OF THIRD PARTY RIGHTS
8 |
9 | This program is distributed in the hope that it will be useful, but
10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 | or FITNESS FOR A PARTICULAR PURPOSE.
12 | See the GNU Affero General Public License for more details.
13 | You should have received a copy of the GNU Affero General Public License
14 | along with this program; if not, see http://www.gnu.org/licenses or write to
15 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 | Boston, MA, 02110-1301 USA, or download the license from the following URL:
17 | http://itextpdf.com/terms-of-use/
18 |
19 | The interactive user interfaces in modified source and object code versions
20 | of this program must display Appropriate Legal Notices, as required under
21 | Section 5 of the GNU Affero General Public License.
22 |
23 | In accordance with Section 7(b) of the GNU Affero General Public License,
24 | a covered work must retain the producer line in every PDF that is created
25 | or manipulated using iText.
26 |
27 | You can be released from the requirements of the license by purchasing
28 | a commercial license. Buying such a license is mandatory as soon as you
29 | develop commercial activities involving the iText software without
30 | disclosing the source code of your own applications.
31 | These activities include: offering paid services to customers as an ASP,
32 | serving PDFs on the fly in a web application, shipping iText with a closed
33 | source product.
34 |
35 | For more information, please contact iText Software Corp. at this
36 | address: sales@itextpdf.com
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 1.8
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/iText1.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText-1
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 | com.itextpdf
15 | kernel
16 | 7.0.3
17 |
18 |
19 |
20 |
21 | com.itextpdf
22 | io
23 | 7.0.3
24 |
25 |
26 |
27 |
28 | com.itextpdf
29 | layout
30 | 7.0.3
31 |
32 |
33 |
34 |
35 | com.itextpdf
36 | forms
37 | 7.0.3
38 |
39 |
40 |
41 |
42 | com.itextpdf
43 | pdfa
44 | 7.0.3
45 |
46 |
47 |
48 |
49 | com.itextpdf
50 | sign
51 | 7.0.3
52 |
53 |
54 |
55 |
56 | com.itextpdf
57 | barcodes
58 | 7.0.3
59 |
60 |
61 |
62 |
63 | com.itextpdf
64 | font-asian
65 | 7.0.3
66 |
67 |
68 |
69 |
70 | com.itextpdf
71 | hyph
72 | 7.0.3
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/java/C01E01_HelloWorld.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This example is part of the iText 7 tutorial.
3 | */
4 |
5 | import com.itextpdf.io.font.PdfEncodings;
6 | import com.itextpdf.kernel.font.PdfFont;
7 | import com.itextpdf.kernel.font.PdfFontFactory;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.layout.Document;
11 | import com.itextpdf.layout.element.Paragraph;
12 |
13 |
14 | import java.io.File;
15 | import java.io.IOException;
16 |
17 | import static com.itextpdf.kernel.pdf.PdfName.BaseFont;
18 |
19 | /**
20 | * Simple Hello World example.
21 | */
22 | public class C01E01_HelloWorld {
23 |
24 | public static final String DEST = "results/chapter01/hello_world.pdf";
25 |
26 | public static void main(String args[]) throws IOException {
27 | File file = new File(DEST);
28 | file.getParentFile().mkdirs(); //创建目录
29 | new C01E01_HelloWorld().createPdf(DEST); //生成文件
30 | }
31 |
32 | public void createPdf(String dest) throws IOException {
33 | //Initialize PDF writer
34 | PdfWriter writer = new PdfWriter(dest);
35 |
36 | //Initialize PDF document
37 | PdfDocument pdf = new PdfDocument(writer);
38 |
39 | // Initialize document
40 | Document document = new Document(pdf);
41 |
42 | PdfFont f2 = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H",true);
43 | PdfFont f3 = PdfFontFactory.createFont("C:/Windows/Fonts/simhei.ttf", PdfEncodings.IDENTITY_H,true);
44 | //Add paragraph to the document
45 | document.add(new Paragraph("hellos你好").setFont(f2));
46 | document.add(new Paragraph("hellos你好").setFont(f3));
47 |
48 |
49 | //Close document
50 | document.close();
51 | }
52 | }
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/java/C01E02_RickAstley.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by CuteKe on 2017/7/10.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.font.PdfFont;
6 | import com.itextpdf.kernel.font.PdfFontFactory;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfWriter;
9 | import com.itextpdf.layout.Document;
10 | import com.itextpdf.layout.element.List;
11 | import com.itextpdf.layout.element.ListItem;
12 | import com.itextpdf.layout.element.Paragraph;
13 | import java.io.File;
14 | import java.io.IOException;
15 |
16 | /**
17 | * Simple List example.
18 | */
19 | public class C01E02_RickAstley {
20 | public static final String DEST = "results/chapter01/rick_astley.pdf";
21 |
22 | public static void main(String args[]) throws IOException {
23 | File file = new File(DEST);
24 | file.getParentFile().mkdirs(); //创建目录
25 | new C01E02_RickAstley().createPdf(DEST); //生成文件
26 | }
27 |
28 | public void createPdf(String dest) throws IOException {
29 | //Initialize PDF writer
30 | PdfWriter writer = new PdfWriter(dest);
31 |
32 | //Initialize PDF document
33 | PdfDocument pdf = new PdfDocument(writer);
34 |
35 | // Initialize document
36 | Document document = new Document(pdf);
37 |
38 | // Create a PdfFont
39 | PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
40 | // Add a Paragraph
41 | document.add(new Paragraph("iText is:").setFont(font));
42 | // Create a List
43 | List list = new List()
44 | .setSymbolIndent(12)
45 | .setListSymbol("\u2022")
46 | .setFont(font);
47 | // Add ListItem objects
48 | list.add(new ListItem("Never gonna give you up呵呵"))
49 | .add(new ListItem("Never gonna let you down是的"))
50 | .add(new ListItem("Never gonna run around and 你desert you"))
51 | .add(new ListItem("Never gonna make 好you cry"))
52 | .add(new ListItem("Never gonna say 哟goodbye"))
53 | .add(new ListItem("Never gonna tell a 嗨lie and hurt you"));
54 | // Add the list
55 | document.add(list);
56 |
57 | //Close document
58 | document.close();
59 | }
60 | }
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/java/C01E03_QuickBrownFox.java:
--------------------------------------------------------------------------------
1 |
2 | import com.itextpdf.io.image.ImageDataFactory;
3 | import com.itextpdf.kernel.pdf.PdfDocument;
4 | import com.itextpdf.kernel.pdf.PdfWriter;
5 | import com.itextpdf.layout.Document;
6 | import com.itextpdf.layout.element.Image;
7 | import com.itextpdf.layout.element.Paragraph;
8 |
9 | import java.io.File;
10 | import java.io.IOException;
11 |
12 | /**
13 | * Simple image example.
14 | */
15 | public class C01E03_QuickBrownFox {
16 | public static final String DOG = "src/main/resources/img/dog.bmp";
17 | public static final String FOX = "src/main/resources/img/fox.bmp";
18 |
19 | public static final String DEST = "results/chapter01/quick_brown_fox.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C01E03_QuickBrownFox().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 | //Initialize PDF writer
29 | PdfWriter writer = new PdfWriter(dest);
30 |
31 | //Initialize PDF document
32 | PdfDocument pdf = new PdfDocument(writer);
33 |
34 | // Initialize document
35 | Document document = new Document(pdf);
36 |
37 | // Compose Paragraph
38 | Image fox = new Image(ImageDataFactory.create(FOX));
39 | Image dog = new Image(ImageDataFactory.create(DOG));
40 | Paragraph p = new Paragraph("The quick brown ")
41 | .add(fox)
42 | .add(" jumps over the lazy ")
43 | .add(dog);
44 | // Add Paragraph to document
45 | document.add(p);
46 |
47 | //Close document
48 | document.close();
49 | }
50 | }
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/java/C01E04_UnitedStates.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by CuteKe on 2017/7/10.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.font.PdfFont;
6 | import com.itextpdf.kernel.font.PdfFontFactory;
7 | import com.itextpdf.kernel.geom.PageSize;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.layout.Document;
11 | import com.itextpdf.layout.element.Cell;
12 | import com.itextpdf.layout.element.Paragraph;
13 | import com.itextpdf.layout.element.Table;
14 |
15 | import java.io.BufferedReader;
16 | import java.io.File;
17 | import java.io.FileReader;
18 | import java.io.IOException;
19 | import java.util.StringTokenizer;
20 |
21 | /**
22 | * Simple table example.
23 | */
24 | public class C01E04_UnitedStates {
25 | public static final String DATA = "src/main/resources/data/united_states.csv";
26 |
27 | public static final String DEST = "results/chapter01/united_states.pdf";
28 |
29 | public static void main(String args[]) throws IOException {
30 | File file = new File(DEST);
31 | file.getParentFile().mkdirs();
32 | new C01E04_UnitedStates().createPdf(DEST);
33 | }
34 |
35 | public void createPdf(String dest) throws IOException {
36 | //Initialize PDF writer
37 | PdfWriter writer = new PdfWriter(dest);
38 |
39 | //Initialize PDF document
40 | PdfDocument pdf = new PdfDocument(writer);
41 |
42 | // Initialize document
43 | Document document = new Document(pdf, PageSize.A4.rotate());
44 | document.setMargins(20, 20, 20, 20);
45 |
46 | PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
47 | PdfFont bold = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
48 | Table table = new Table(new float[]{4, 1, 3, 4, 3, 3, 3, 3, 1});
49 | table.setWidthPercent(100);
50 | BufferedReader br = new BufferedReader(new FileReader(DATA));
51 | String line = br.readLine();
52 | process(table, line, bold, true);
53 | while ((line = br.readLine()) != null) {
54 | process(table, line, font, false);
55 | }
56 | br.close();
57 | document.add(table);
58 |
59 | //Close document
60 | document.close();
61 | }
62 |
63 | public void process(Table table, String line, PdfFont font, boolean isHeader) {
64 | StringTokenizer tokenizer = new StringTokenizer(line, ";");
65 | while (tokenizer.hasMoreTokens()) {
66 | if (isHeader) {
67 | table.addHeaderCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
68 | } else {
69 | table.addCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
70 | }
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/java/UnicodeUtil.java:
--------------------------------------------------------------------------------
1 | import java.io.UnsupportedEncodingException;
2 |
3 | /**
4 | * Created by ASUS on 2017/11/7.
5 | */
6 | public class UnicodeUtil {
7 | public static String string2Unicode(String string) {
8 |
9 | StringBuffer unicode = new StringBuffer();
10 |
11 | for (int i = 0; i < string.length(); i++) {
12 |
13 | // 取出每一个字符
14 | char c = string.charAt(i);
15 |
16 | // 转换为unicode
17 | unicode.append("\\u" + Integer.toHexString(c));
18 | }
19 |
20 | return unicode.toString();
21 | }
22 | public static String unicode2String(String unicode) {
23 |
24 | StringBuffer string = new StringBuffer();
25 |
26 | String[] hex = unicode.split("\\\\u");
27 |
28 | for (int i = 1; i < hex.length; i++) {
29 |
30 | // 转换出每一个代码点
31 | int data = Integer.parseInt(hex[i], 16);
32 |
33 | // 追加成string
34 | string.append((char) data);
35 | }
36 |
37 | return string.toString();
38 | }
39 | public static void main(String[] args) throws UnsupportedEncodingException {
40 | String test = "最代码网站地址:www.zuidaima.com";
41 |
42 | String unicode = string2Unicode(test);
43 |
44 | String string = unicode2String(unicode) ;
45 |
46 | System.out.println(unicode);
47 |
48 | System.out.println(string);
49 |
50 |
51 |
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/resources/data/united_states.csv:
--------------------------------------------------------------------------------
1 | name姓名;abbr;capital;most populous city;population;square miles;time zone 1;time zone 2;dst,,,
2 | ALABAMA;AL;Montgomery;Birmingham;4,708,708;52,423;CST (UTC-6);EST (UTC-5);YES
3 | ALASKA;AK;Juneau;Anchorage;698,473;656,425;AKST (UTC-09) ;HST (UTC-10) ;YES,
4 | ARIZONA;AZ;Phoenix;Phoenix;6,595,778;114,006;MT (UTC-07); ;NO
5 | ARKANSAS;AR;Little Rock;Little Rock;2,889,450;53,182;CST (UTC-6); ;YES
6 | CALIFORNIA;CA;Sacramento;Los Angeles;36,961,664;163,707;PT (UTC-8); ;YES
7 | COLORADO;CO;Denver;Denver;5,24,748;104,100;MT (UTC-07); ;YES
8 | CONNECTICUT;CT;Hartford;Bridgeport;3,518,288;5,544;EST (UTC-5); ;YES
9 | DELAWARE;DE;Dover;Wilmington;885,122;1,954;EST (UTC-5); ;YES,
10 | FLORIDA;FL;Tallahassee;Jacksonville;18,537,969;65,758;EST (UTC-5);CST (UTC-6);YES
11 | GEORGIA;GA;Atlanta;Atlanta;9,829,211;59,441;EST (UTC-5); ;YES
12 | HAWAII;HI;Honolulu;Honolulu;1,295,178;10,932;HST (UTC-10) ; ;NO
13 | IDAHO;ID;Boise;Boise;1,545,801;83,574;MT (UTC-07);PT (UTC-8);YES
14 | ILLINOIS;IL;Springfield;Chicago;12,910,409;57,918;CST (UTC-6); ;YES
15 | INDIANA;IN;Indianapolis;Indianapolis;6,423,113;36,420;EST (UTC-5);CST (UTC-6);YES
16 | IOWA;IA;Des Moines;Des Moines;3,7,856;56,276;CST (UTC-6); ;YES
17 | KANSAS;KS;Topeka;Wichita;2,818,747;82,282;CST (UTC-6);MT (UTC-07);YES
18 | KENTUCKY;KY;Frankfort;Louisville;4,314,113;40,411;EST (UTC-5);CST (UTC-6);YES
19 | LOUISIANA;LA;Baton Rouge;New Orleans;4,492,076;51,843;CST (UTC-6); ;YES
20 | MAINE;ME;Augusta;Portland;1,318,301;35,387;EST (UTC-5); ;YES
21 | MARYLAND;MD;Annapolis;Baltimore;5,699,478;12,407;EST (UTC-5); ;YES
22 | MASSACHUSETTS;MA;Boston;Boston;6,593,587;10,555;EST (UTC-5); ;YES
23 | MICHIGAN;MI;Lansing;Detroit;9,969,727;96,810;EST (UTC-5);CST (UTC-6);YES
24 | MINNESOTA;MN;Saint Paul;Minneapolis;5,266,214;86,943;CST (UTC-6); ;YES
25 | MISSISSIPPI;MS;Jackson;Jackson;2,951,996;48,434;CST (UTC-6); ;YES
26 | MISSOURI;MO;Jefferson City;Kansas City;5,987,580;69,709;CST (UTC-6); ;YES
27 | MONTANA;MT;Helena;Billings;974,989;147,046;MT (UTC-07); ;YES,
28 | NEBRASKA;NE;Lincoln;Omaha;1,796,619;77,358;CST (UTC-6);MT (UTC-07);YES
29 | NEVADA;NV;Carson City;Las Vegas;2,643,085;110,567;PT (UTC-8);MT (UTC-07);YES
30 | NEW HAMPSHIRE;NH;Concord;Machester;1,324,575;9,351;EST (UTC-5); ;YES
31 | NEW JERSEY;NJ;Trenton;Newark;8,707,739;8,722;EST (UTC-5); ;YES
32 | NEW MEXICO;NM;Santa Fe;Albuquerque;2,9,671;121,593;MT (UTC-07); ;YES
33 | NEW YORK;NY;Albany;New York;19,541,453;54,475;EST (UTC-5); ;YES
34 | NORTH CAROLINA;NC;Raleigh;Charlotte;9,380,884;53,821;EST (UTC-5); ;YES
35 | NORTH DAKOTA;ND;Bismarck;Fargo;646,844;70,704;CST (UTC-6);MT (UTC-07);YES,
36 | OHIO;OH;Columbus;Columbus;11,542,645;44,828;EST (UTC-5); ;YES
37 | OKLAHOMA;OK;Oklahoma City;Oklahoma City;3,687,050;69,903;CST (UTC-6); ;YES
38 | OREGON;OR;Salem;Portland;3,825,657;98,386;PT (UTC-8);MT (UTC-07);YES
39 | PENNSYLVANIA;PA;Harrisburg;Philadelphia;12,604,767;46,058;EST (UTC-5); ;YES
40 | RHODE ISLAND;RI;Providence;Providence;1,53,209;1,545;EST (UTC-5); ;YES
41 | SOUTH CAROLINA;SC;Columbia;Columbia;4,561,242;32,007;EST (UTC-5); ;YES
42 | SOUTH DAKOTA;SD;Pierre;Sioux Falls;812,383;77,121;CST (UTC-6);MT (UTC-07);YES,
43 | TENNESSEE;TN;Nashville;Memphis;6,296,254;42,146;CST (UTC-6);EST (UTC-5);YES
44 | TEXAS;TX;Austin;Houston;24,782,302;268,601;CST (UTC-6);MT (UTC-07);YES
45 | UTAH;UT;Salt Lake City;Salt Lake City;2,784,572;84,904;MT (UTC-07); ;YES
46 | VERMONT;VT;Montpelier;Burlington;621,760;9,615;EST (UTC-5); ;YES,
47 | VIRGINIA;VA;Richmond;Virginia Beach;7,882,590;42,769;EST (UTC-5); ;YES
48 | WASHINGTON;WA;Olympia;Seattle;6,664,195;71,303;PT (UTC-8); ;YES
49 | WEST VIRGINIA;WV;Charleston;Charleston;1,819,777;24,231;EST (UTC-5); ;YES
50 | WISCONSIN;WI;Madison;Milwaukee;5,654,774;65,503;CST (UTC-6); ;YES
51 | WYOMING;WY;Cheyenne;Cheyenne;544,270;97,818;MT (UTC-07); ;YES,
52 |
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/resources/img/dog.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText1-中文输出/src/main/resources/img/dog.bmp
--------------------------------------------------------------------------------
/iText-start/iText1-中文输出/src/main/resources/img/fox.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText1-中文输出/src/main/resources/img/fox.bmp
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 1.8
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/iText-start/iText1/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText1/iText1.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText1/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText-1
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 | com.itextpdf
15 | kernel
16 | 7.0.3
17 |
18 |
19 |
20 |
21 | com.itextpdf
22 | io
23 | 7.0.3
24 |
25 |
26 |
27 |
28 | com.itextpdf
29 | layout
30 | 7.0.3
31 |
32 |
33 |
34 |
35 | com.itextpdf
36 | forms
37 | 7.0.3
38 |
39 |
40 |
41 |
42 | com.itextpdf
43 | pdfa
44 | 7.0.3
45 |
46 |
47 |
48 |
49 | com.itextpdf
50 | sign
51 | 7.0.3
52 |
53 |
54 |
55 |
56 | com.itextpdf
57 | barcodes
58 | 7.0.3
59 |
60 |
61 |
62 |
63 | com.itextpdf
64 | font-asian
65 | 7.0.3
66 |
67 |
68 |
69 |
70 | com.itextpdf
71 | hyph
72 | 7.0.3
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/java/C01E01_HelloWorld.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This example is part of the iText 7 tutorial.
3 | */
4 |
5 | import com.itextpdf.kernel.pdf.PdfDocument;
6 | import com.itextpdf.kernel.pdf.PdfWriter;
7 | import com.itextpdf.layout.Document;
8 | import com.itextpdf.layout.element.Paragraph;
9 |
10 |
11 | import java.io.File;
12 | import java.io.IOException;
13 |
14 | /**
15 | * Simple Hello World example.
16 | */
17 | public class C01E01_HelloWorld {
18 |
19 | public static final String DEST = "results/chapter01/hello_world.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs(); //创建目录
24 | new C01E01_HelloWorld().createPdf(DEST); //生成文件
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 | //Initialize PDF writer
29 | PdfWriter writer = new PdfWriter(dest);
30 |
31 | //Initialize PDF document
32 | PdfDocument pdf = new PdfDocument(writer);
33 |
34 | // Initialize document
35 | Document document = new Document(pdf);
36 |
37 | //Add paragraph to the document
38 | document.add(new Paragraph("Hello World!"));
39 |
40 | //Close document
41 | document.close();
42 | }
43 | }
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/java/C01E02_RickAstley.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by CuteKe on 2017/7/10.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.font.PdfFont;
6 | import com.itextpdf.kernel.font.PdfFontFactory;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfWriter;
9 | import com.itextpdf.layout.Document;
10 | import com.itextpdf.layout.element.List;
11 | import com.itextpdf.layout.element.ListItem;
12 | import com.itextpdf.layout.element.Paragraph;
13 | import java.io.File;
14 | import java.io.IOException;
15 |
16 | /**
17 | * Simple List example.
18 | */
19 | public class C01E02_RickAstley {
20 | public static final String DEST = "results/chapter01/rick_astley.pdf";
21 |
22 | public static void main(String args[]) throws IOException {
23 | File file = new File(DEST);
24 | file.getParentFile().mkdirs(); //创建目录
25 | new C01E02_RickAstley().createPdf(DEST); //生成文件
26 | }
27 |
28 | public void createPdf(String dest) throws IOException {
29 | //Initialize PDF writer
30 | PdfWriter writer = new PdfWriter(dest);
31 |
32 | //Initialize PDF document
33 | PdfDocument pdf = new PdfDocument(writer);
34 |
35 | // Initialize document
36 | Document document = new Document(pdf);
37 |
38 | // Create a PdfFont
39 | PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
40 | // Add a Paragraph
41 | document.add(new Paragraph("iText is:").setFont(font));
42 | // Create a List
43 | List list = new List()
44 | .setSymbolIndent(12)
45 | .setListSymbol("\u2022")
46 | .setFont(font);
47 | // Add ListItem objects
48 | list.add(new ListItem("Never gonna give you up"))
49 | .add(new ListItem("Never gonna let you down"))
50 | .add(new ListItem("Never gonna run around and desert you"))
51 | .add(new ListItem("Never gonna make you cry"))
52 | .add(new ListItem("Never gonna say goodbye"))
53 | .add(new ListItem("Never gonna tell a lie and hurt you"));
54 | // Add the list
55 | document.add(list);
56 |
57 | //Close document
58 | document.close();
59 | }
60 | }
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/java/C01E03_QuickBrownFox.java:
--------------------------------------------------------------------------------
1 |
2 | import com.itextpdf.io.image.ImageDataFactory;
3 | import com.itextpdf.kernel.pdf.PdfDocument;
4 | import com.itextpdf.kernel.pdf.PdfWriter;
5 | import com.itextpdf.layout.Document;
6 | import com.itextpdf.layout.element.Image;
7 | import com.itextpdf.layout.element.Paragraph;
8 |
9 | import java.io.File;
10 | import java.io.IOException;
11 |
12 | /**
13 | * Simple image example.
14 | */
15 | public class C01E03_QuickBrownFox {
16 | public static final String DOG = "src/main/resources/img/dog.bmp";
17 | public static final String FOX = "src/main/resources/img/fox.bmp";
18 |
19 | public static final String DEST = "results/chapter01/quick_brown_fox.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C01E03_QuickBrownFox().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 | //Initialize PDF writer
29 | PdfWriter writer = new PdfWriter(dest);
30 |
31 | //Initialize PDF document
32 | PdfDocument pdf = new PdfDocument(writer);
33 |
34 | // Initialize document
35 | Document document = new Document(pdf);
36 |
37 | // Compose Paragraph
38 | Image fox = new Image(ImageDataFactory.create(FOX));
39 | Image dog = new Image(ImageDataFactory.create(DOG));
40 | Paragraph p = new Paragraph("The quick brown ")
41 | .add(fox)
42 | .add(" jumps over the lazy ")
43 | .add(dog);
44 | // Add Paragraph to document
45 | document.add(p);
46 |
47 | //Close document
48 | document.close();
49 | }
50 | }
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/java/C01E04_UnitedStates.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by CuteKe on 2017/7/10.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.font.PdfFont;
6 | import com.itextpdf.kernel.font.PdfFontFactory;
7 | import com.itextpdf.kernel.geom.PageSize;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.layout.Document;
11 | import com.itextpdf.layout.element.Cell;
12 | import com.itextpdf.layout.element.Paragraph;
13 | import com.itextpdf.layout.element.Table;
14 |
15 | import java.io.BufferedReader;
16 | import java.io.File;
17 | import java.io.FileReader;
18 | import java.io.IOException;
19 | import java.util.StringTokenizer;
20 |
21 | /**
22 | * Simple table example.
23 | */
24 | public class C01E04_UnitedStates {
25 | public static final String DATA = "src/main/resources/data/united_states.csv";
26 |
27 | public static final String DEST = "results/chapter01/united_states.pdf";
28 |
29 | public static void main(String args[]) throws IOException {
30 | File file = new File(DEST);
31 | file.getParentFile().mkdirs();
32 | new C01E04_UnitedStates().createPdf(DEST);
33 | }
34 |
35 | public void createPdf(String dest) throws IOException {
36 | //Initialize PDF writer
37 | PdfWriter writer = new PdfWriter(dest);
38 |
39 | //Initialize PDF document
40 | PdfDocument pdf = new PdfDocument(writer);
41 |
42 | // Initialize document
43 | Document document = new Document(pdf, PageSize.A4.rotate());
44 | document.setMargins(20, 20, 20, 20);
45 |
46 | PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA);
47 | PdfFont bold = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
48 | Table table = new Table(new float[]{4, 1, 3, 4, 3, 3, 3, 3, 1});
49 | table.setWidthPercent(100);
50 | BufferedReader br = new BufferedReader(new FileReader(DATA));
51 | String line = br.readLine();
52 | process(table, line, bold, true);
53 | while ((line = br.readLine()) != null) {
54 | process(table, line, font, false);
55 | }
56 | br.close();
57 | document.add(table);
58 |
59 | //Close document
60 | document.close();
61 | }
62 |
63 | public void process(Table table, String line, PdfFont font, boolean isHeader) {
64 | StringTokenizer tokenizer = new StringTokenizer(line, ";");
65 | while (tokenizer.hasMoreTokens()) {
66 | if (isHeader) {
67 | table.addHeaderCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
68 | } else {
69 | table.addCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
70 | }
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/resources/data/united_states.csv:
--------------------------------------------------------------------------------
1 | name;abbr;capital;most populous city;population;square miles;time zone 1;time zone 2;dst
2 | ALABAMA;AL;Montgomery;Birmingham;4,708,708;52,423;CST (UTC-6);EST (UTC-5);YES
3 | ALASKA;AK;Juneau;Anchorage;698,473;656,425;AKST (UTC-09) ;HST (UTC-10) ;YES
4 | ARIZONA;AZ;Phoenix;Phoenix;6,595,778;114,006;MT (UTC-07); ;NO
5 | ARKANSAS;AR;Little Rock;Little Rock;2,889,450;53,182;CST (UTC-6); ;YES
6 | CALIFORNIA;CA;Sacramento;Los Angeles;36,961,664;163,707;PT (UTC-8); ;YES
7 | COLORADO;CO;Denver;Denver;5,024,748;104,100;MT (UTC-07); ;YES
8 | CONNECTICUT;CT;Hartford;Bridgeport;3,518,288;5,544;EST (UTC-5); ;YES
9 | DELAWARE;DE;Dover;Wilmington;885,122;1,954;EST (UTC-5); ;YES
10 | FLORIDA;FL;Tallahassee;Jacksonville;18,537,969;65,758;EST (UTC-5);CST (UTC-6);YES
11 | GEORGIA;GA;Atlanta;Atlanta;9,829,211;59,441;EST (UTC-5); ;YES
12 | HAWAII;HI;Honolulu;Honolulu;1,295,178;10,932;HST (UTC-10) ; ;NO
13 | IDAHO;ID;Boise;Boise;1,545,801;83,574;MT (UTC-07);PT (UTC-8);YES
14 | ILLINOIS;IL;Springfield;Chicago;12,910,409;57,918;CST (UTC-6); ;YES
15 | INDIANA;IN;Indianapolis;Indianapolis;6,423,113;36,420;EST (UTC-5);CST (UTC-6);YES
16 | IOWA;IA;Des Moines;Des Moines;3,007,856;56,276;CST (UTC-6); ;YES
17 | KANSAS;KS;Topeka;Wichita;2,818,747;82,282;CST (UTC-6);MT (UTC-07);YES
18 | KENTUCKY;KY;Frankfort;Louisville;4,314,113;40,411;EST (UTC-5);CST (UTC-6);YES
19 | LOUISIANA;LA;Baton Rouge;New Orleans;4,492,076;51,843;CST (UTC-6); ;YES
20 | MAINE;ME;Augusta;Portland;1,318,301;35,387;EST (UTC-5); ;YES
21 | MARYLAND;MD;Annapolis;Baltimore;5,699,478;12,407;EST (UTC-5); ;YES
22 | MASSACHUSETTS;MA;Boston;Boston;6,593,587;10,555;EST (UTC-5); ;YES
23 | MICHIGAN;MI;Lansing;Detroit;9,969,727;96,810;EST (UTC-5);CST (UTC-6);YES
24 | MINNESOTA;MN;Saint Paul;Minneapolis;5,266,214;86,943;CST (UTC-6); ;YES
25 | MISSISSIPPI;MS;Jackson;Jackson;2,951,996;48,434;CST (UTC-6); ;YES
26 | MISSOURI;MO;Jefferson City;Kansas City;5,987,580;69,709;CST (UTC-6); ;YES
27 | MONTANA;MT;Helena;Billings;974,989;147,046;MT (UTC-07); ;YES
28 | NEBRASKA;NE;Lincoln;Omaha;1,796,619;77,358;CST (UTC-6);MT (UTC-07);YES
29 | NEVADA;NV;Carson City;Las Vegas;2,643,085;110,567;PT (UTC-8);MT (UTC-07);YES
30 | NEW HAMPSHIRE;NH;Concord;Machester;1,324,575;9,351;EST (UTC-5); ;YES
31 | NEW JERSEY;NJ;Trenton;Newark;8,707,739;8,722;EST (UTC-5); ;YES
32 | NEW MEXICO;NM;Santa Fe;Albuquerque;2,009,671;121,593;MT (UTC-07); ;YES
33 | NEW YORK;NY;Albany;New York;19,541,453;54,475;EST (UTC-5); ;YES
34 | NORTH CAROLINA;NC;Raleigh;Charlotte;9,380,884;53,821;EST (UTC-5); ;YES
35 | NORTH DAKOTA;ND;Bismarck;Fargo;646,844;70,704;CST (UTC-6);MT (UTC-07);YES
36 | OHIO;OH;Columbus;Columbus;11,542,645;44,828;EST (UTC-5); ;YES
37 | OKLAHOMA;OK;Oklahoma City;Oklahoma City;3,687,050;69,903;CST (UTC-6); ;YES
38 | OREGON;OR;Salem;Portland;3,825,657;98,386;PT (UTC-8);MT (UTC-07);YES
39 | PENNSYLVANIA;PA;Harrisburg;Philadelphia;12,604,767;46,058;EST (UTC-5); ;YES
40 | RHODE ISLAND;RI;Providence;Providence;1,053,209;1,545;EST (UTC-5); ;YES
41 | SOUTH CAROLINA;SC;Columbia;Columbia;4,561,242;32,007;EST (UTC-5); ;YES
42 | SOUTH DAKOTA;SD;Pierre;Sioux Falls;812,383;77,121;CST (UTC-6);MT (UTC-07);YES
43 | TENNESSEE;TN;Nashville;Memphis;6,296,254;42,146;CST (UTC-6);EST (UTC-5);YES
44 | TEXAS;TX;Austin;Houston;24,782,302;268,601;CST (UTC-6);MT (UTC-07);YES
45 | UTAH;UT;Salt Lake City;Salt Lake City;2,784,572;84,904;MT (UTC-07); ;YES
46 | VERMONT;VT;Montpelier;Burlington;621,760;9,615;EST (UTC-5); ;YES
47 | VIRGINIA;VA;Richmond;Virginia Beach;7,882,590;42,769;EST (UTC-5); ;YES
48 | WASHINGTON;WA;Olympia;Seattle;6,664,195;71,303;PT (UTC-8); ;YES
49 | WEST VIRGINIA;WV;Charleston;Charleston;1,819,777;24,231;EST (UTC-5); ;YES
50 | WISCONSIN;WI;Madison;Milwaukee;5,654,774;65,503;CST (UTC-6); ;YES
51 | WYOMING;WY;Cheyenne;Cheyenne;544,270;97,818;MT (UTC-07); ;YES
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/resources/img/dog.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText1/src/main/resources/img/dog.bmp
--------------------------------------------------------------------------------
/iText-start/iText1/src/main/resources/img/fox.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText1/src/main/resources/img/fox.bmp
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/iText-start/iText2/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText2/iText2.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText2/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText2
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 |
15 | com.itextpdf
16 | kernel
17 | 7.0.3
18 |
19 |
20 |
21 |
22 | com.itextpdf
23 | io
24 | 7.0.3
25 |
26 |
27 |
28 |
29 | com.itextpdf
30 | layout
31 | 7.0.3
32 |
33 |
34 |
35 |
36 | com.itextpdf
37 | forms
38 | 7.0.3
39 |
40 |
41 |
42 |
43 | com.itextpdf
44 | pdfa
45 | 7.0.3
46 |
47 |
48 |
49 |
50 | com.itextpdf
51 | sign
52 | 7.0.3
53 |
54 |
55 |
56 |
57 | com.itextpdf
58 | barcodes
59 | 7.0.3
60 |
61 |
62 |
63 |
64 | com.itextpdf
65 | font-asian
66 | 7.0.3
67 |
68 |
69 |
70 |
71 | com.itextpdf
72 | hyph
73 | 7.0.3
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/iText-start/iText2/src/main/java/C02E01_Axes.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/8/12.
3 | */
4 | import com.itextpdf.kernel.geom.PageSize;
5 | import com.itextpdf.kernel.pdf.PdfDocument;
6 | import com.itextpdf.kernel.pdf.PdfPage;
7 | import com.itextpdf.kernel.pdf.PdfWriter;
8 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
9 | import com.itextpdf.kernel.pdf.canvas.PdfCanvasConstants;
10 |
11 | import java.io.File;
12 | import java.io.IOException;
13 |
14 | public class C02E01_Axes {
15 |
16 | public static final String DEST = "results/chapter02/axes.pdf";
17 |
18 | public static void main(String args[]) throws IOException {
19 | File file = new File(DEST);
20 | file.getParentFile().mkdirs();
21 | new C02E01_Axes().createPdf(DEST);
22 | }
23 |
24 | public void createPdf(String dest) throws IOException {
25 |
26 | //Initialize PDF document
27 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
28 |
29 | PageSize ps = PageSize.A4.rotate();
30 | PdfPage page = pdf.addNewPage(ps);
31 |
32 | PdfCanvas canvas = new PdfCanvas(page);
33 | //Replace the origin of the coordinate system to the center of the page
34 | canvas.concatMatrix(1, 0, 0, 1, ps.getWidth() / 2, ps.getHeight() / 2);
35 |
36 | C02E01_Axes.drawAxes(canvas, ps);
37 |
38 | //Close document
39 | pdf.close();
40 |
41 | }
42 |
43 | public static void drawAxes(PdfCanvas canvas, PageSize ps) {
44 | //Draw X axis
45 | canvas.moveTo(-(ps.getWidth() / 2 - 15), 0)
46 | .lineTo(ps.getWidth() / 2 - 15, 0)
47 | .stroke();
48 |
49 | //Draw X axis arrow
50 | canvas.setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.ROUND)
51 | .moveTo(ps.getWidth() / 2 - 25, -10)
52 | .lineTo(ps.getWidth() / 2 - 15, 0)
53 | .lineTo(ps.getWidth() / 2 - 25, 10).stroke()
54 | .setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.MITER);
55 |
56 | //Draw Y axis
57 | canvas.moveTo(0, -(ps.getHeight() / 2 - 15))
58 | .lineTo(0, ps.getHeight() / 2 - 15)
59 | .stroke();
60 |
61 | //Draw Y axis arrow
62 | canvas.saveState()
63 | .setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.ROUND)
64 | .moveTo(-10, ps.getHeight() / 2 - 25)
65 | .lineTo(0, ps.getHeight() / 2 - 15)
66 | .lineTo(10, ps.getHeight() / 2 - 25).stroke()
67 | .restoreState();
68 |
69 | //Draw X serif
70 | for (int i = -((int) ps.getWidth() / 2 - 61); i < ((int) ps.getWidth() / 2 - 60); i += 40) {
71 | canvas.moveTo(i, 5).lineTo(i, -5);
72 | }
73 | //Draw Y serif
74 | for (int j = -((int) ps.getHeight() / 2 - 57); j < ((int) ps.getHeight() / 2 - 56); j += 40) {
75 | canvas.moveTo(5, j).lineTo(-5, j);
76 | }
77 | canvas.stroke();
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/iText-start/iText2/src/main/java/C02E02_GridLines.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/8/12.
3 | */
4 | import com.itextpdf.kernel.color.Color;
5 | import com.itextpdf.kernel.color.DeviceCmyk;
6 | import com.itextpdf.kernel.geom.PageSize;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfPage;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
11 |
12 | import java.io.File;
13 | import java.io.IOException;
14 |
15 | public class C02E02_GridLines {
16 |
17 | public static final String DEST = "results/chapter02/grid_lines.pdf";
18 |
19 | public static void main(String args[]) throws IOException {
20 | File file = new File(DEST);
21 | file.getParentFile().mkdirs();
22 | new C02E02_GridLines().createPdf(DEST);
23 | }
24 |
25 | public void createPdf(String dest) throws IOException {
26 |
27 | //Initialize PDF document
28 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
29 |
30 | PageSize ps = PageSize.A4.rotate();
31 | PdfPage page = pdf.addNewPage(ps);
32 |
33 | PdfCanvas canvas = new PdfCanvas(page);
34 | //Replace the origin of the coordinate system to the center of the page
35 | canvas.concatMatrix(1, 0, 0, 1, ps.getWidth() / 2, ps.getHeight() / 2);
36 |
37 | Color grayColor = new DeviceCmyk(0.f, 0.f, 0.f, 0.875f);
38 | Color greenColor = new DeviceCmyk(1.f, 0.f, 1.f, 0.176f);
39 | Color blueColor = new DeviceCmyk(1.f, 0.156f, 0.f, 0.118f);
40 |
41 | canvas.setLineWidth(0.5f).setStrokeColor(blueColor);
42 |
43 | //Draw horizontal grid lines
44 | for (int i = -((int) ps.getHeight() / 2 - 57); i < ((int) ps.getHeight() / 2 - 56); i += 40) {
45 | canvas.moveTo(-(ps.getWidth() / 2 - 15), i)
46 | .lineTo(ps.getWidth() / 2 - 15, i);
47 | }
48 | //Draw vertical grid lines
49 | for (int j = -((int) ps.getWidth() / 2 - 61); j < ((int) ps.getWidth() / 2 - 60); j += 40) {
50 | canvas.moveTo(j, -(ps.getHeight() / 2 - 15))
51 | .lineTo(j, ps.getHeight() / 2 - 15);
52 | }
53 | canvas.stroke();
54 |
55 | //Draw axes
56 | canvas.setLineWidth(3).setStrokeColor(grayColor);
57 | C02E01_Axes.drawAxes(canvas, ps);
58 |
59 | //Draw plot
60 | canvas.setLineWidth(2).setStrokeColor(greenColor)
61 | .setLineDash(10, 10, 8)
62 | .moveTo(-(ps.getWidth() / 2 - 15), -(ps.getHeight() / 2 - 15))
63 | .lineTo(ps.getWidth() / 2 - 15, ps.getHeight() / 2 - 15).stroke();
64 |
65 | //Close document
66 | pdf.close();
67 |
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/iText-start/iText2/src/main/java/C02E03_StarWars.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/8/12.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.font.PdfFontFactory;
6 | import com.itextpdf.kernel.geom.PageSize;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfPage;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
11 |
12 | import java.io.File;
13 | import java.io.IOException;
14 | import java.util.ArrayList;
15 | import java.util.List;
16 |
17 | public class C02E03_StarWars {
18 |
19 | public static final String DEST = "results/chapter02/star_wars.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C02E03_StarWars().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 |
29 | //Initialize PDF document
30 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
31 |
32 | //Add new page
33 | PageSize ps = PageSize.A4;
34 | PdfPage page = pdf.addNewPage(ps);
35 |
36 | PdfCanvas canvas = new PdfCanvas(page);
37 |
38 | List text = new ArrayList();
39 | text.add(" Episode V ");
40 | text.add(" THE EMPIRE STRIKES BACK ");
41 | text.add("It is a dark time for the");
42 | text.add("Rebellion. Although the Death");
43 | text.add("Star has been destroyed,");
44 | text.add("Imperial troops have driven the");
45 | text.add("Rebel forces from their hidden");
46 | text.add("base and pursued them across");
47 | text.add("the galaxy.");
48 | text.add("Evading the dreaded Imperial");
49 | text.add("Starfleet, a group of freedom");
50 | text.add("fighters led by Luke Skywalker");
51 | text.add("has established a new secret");
52 | text.add("base on the remote ice world");
53 | text.add("of Hoth...");
54 |
55 | //Replace the origin of the coordinate system to the top left corner
56 | canvas.concatMatrix(1, 0, 0, 1, 0, ps.getHeight());
57 | canvas.beginText()
58 | .setFontAndSize(PdfFontFactory.createFont(FontConstants.COURIER_BOLD), 14)
59 | .setLeading(14 * 1.2f)
60 | .moveText(70, -40);
61 | for (String s : text) {
62 | //Add text and move to the next line
63 | canvas.newlineShowText(s);
64 | }
65 | canvas.endText();
66 |
67 | //Close document
68 | pdf.close();
69 |
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText3/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText3/iText3.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText3/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText3
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 |
15 | com.itextpdf
16 | kernel
17 | 7.0.3
18 |
19 |
20 |
21 |
22 | com.itextpdf
23 | io
24 | 7.0.3
25 |
26 |
27 |
28 |
29 | com.itextpdf
30 | layout
31 | 7.0.3
32 |
33 |
34 |
35 |
36 | com.itextpdf
37 | forms
38 | 7.0.3
39 |
40 |
41 |
42 |
43 | com.itextpdf
44 | pdfa
45 | 7.0.3
46 |
47 |
48 |
49 |
50 | com.itextpdf
51 | sign
52 | 7.0.3
53 |
54 |
55 |
56 |
57 | com.itextpdf
58 | barcodes
59 | 7.0.3
60 |
61 |
62 |
63 |
64 | com.itextpdf
65 | font-asian
66 | 7.0.3
67 |
68 |
69 |
70 |
71 | com.itextpdf
72 | hyph
73 | 7.0.3
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/data/ny_times_apple.txt:
--------------------------------------------------------------------------------
1 | Apple employees are already discussing what they will do if ordered to help law enforcement authorities. Some say they may balk at the work, while others may even quit their high-paying jobs rather than undermine the security of the software they have already created, according to more than a half-dozen current and former Apple employees. Among those interviewed were Apple engineers who are involved in the development of mobile products and security, as well as former security engineers and executives. The potential resistance adds a wrinkle to a very public fight between Apple, the world’s most valuable company, and the authorities over access to an iPhone used by one of the attackers in the December mass killing in San Bernardino, Calif.
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/data/ny_times_fb.txt:
--------------------------------------------------------------------------------
1 | In a Friday morning post, Facebook’s co-founder and chief executive, Mark Zuckerberg, announced his arrival in Beijing with a blithe message about what must have been a dizzying jog through the center of China’s capital, which has been suffering from a weeklong bout of hazardous air pollution.
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/data/ny_times_inst.txt:
--------------------------------------------------------------------------------
1 | That could mean that if your best friend posted a photo of her new Bernese mountain dog’s puppies five hours ago while you were on a flight without Internet connectivity, Instagram might place that image at the top of your feed the next time you open the app. Based on your history of interaction with that friend, Instagram knows you probably would not want to miss that picture.
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/data/premier_league.csv:
--------------------------------------------------------------------------------
1 | POS;CLUB;Played;Won;Drawn;Lost;Goals For;Goals against;Goal Difference;Points
2 | 1;Leicester City;30;18;9;3;53;31;22;63
3 | 2;Tottenham Hotspur;30;16;10;4;53;24;29;58
4 | 3;Arsenal;29;15;7;7;46;30;16;52
5 | 4;Manchester City;29;15;6;8;52;31;21;51
6 | 5;West Ham United;29;13;10;6;45;33;12;49
7 | 6;Manchester United;29;13;8;8;37;27;10;47
8 | 7;Southampton;30;12;8;10;38;30;8;44
9 | 8;Liverpool;28;12;8;8;43;37;6;44
10 | 9;Stoke City;30;12;7;11;32;36;-4;43
11 | 10;Chelsea;29;10;10;9;43;39;4;40
12 | 11;West Bromwich Albion;29;10;9;10;30;36;-6;39
13 | 12;Everton;28;9;11;8;51;39;12;38
14 | 13;Bournemouth;30;10;8;12;38;47;-9;38
15 | 14;Watford;29;10;7;12;29;30;-1;37
16 | 15;Crystal Palace;29;9;6;14;32;39;-7;33
17 | 16;Swansea City;30;8;9;13;30;40;-10;33
18 | 17;Sunderland;29;6;7;16;35;54;-19;25
19 | 18;Norwich City;30;6;7;17;31;54;-23;25
20 | 19;Newcastle United;29;6;6;17;28;54;-26;24
21 | 20;Aston Villa;30;3;7;20;22;57;-35;16
22 |
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/img/ny_times_apple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText3/src/main/resources/img/ny_times_apple.jpg
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/img/ny_times_fb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText3/src/main/resources/img/ny_times_fb.jpg
--------------------------------------------------------------------------------
/iText-start/iText3/src/main/resources/img/ny_times_inst.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText3/src/main/resources/img/ny_times_inst.jpg
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText4/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText4/iText4.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText4/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText4
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 |
15 | com.itextpdf
16 | kernel
17 | 7.0.3
18 |
19 |
20 |
21 |
22 | com.itextpdf
23 | io
24 | 7.0.3
25 |
26 |
27 |
28 |
29 | com.itextpdf
30 | layout
31 | 7.0.3
32 |
33 |
34 |
35 |
36 | com.itextpdf
37 | forms
38 | 7.0.3
39 |
40 |
41 |
42 |
43 | com.itextpdf
44 | pdfa
45 | 7.0.3
46 |
47 |
48 |
49 |
50 | com.itextpdf
51 | sign
52 | 7.0.3
53 |
54 |
55 |
56 |
57 | com.itextpdf
58 | barcodes
59 | 7.0.3
60 |
61 |
62 |
63 |
64 | com.itextpdf
65 | font-asian
66 | 7.0.3
67 |
68 |
69 |
70 |
71 | com.itextpdf
72 | hyph
73 | 7.0.3
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E01_01_TextAnnotation.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.color.Color;
5 | import com.itextpdf.kernel.geom.Rectangle;
6 | import com.itextpdf.kernel.pdf.PdfDocument;
7 | import com.itextpdf.kernel.pdf.PdfString;
8 | import com.itextpdf.kernel.pdf.PdfWriter;
9 | import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
10 | import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
11 | import com.itextpdf.layout.Document;
12 | import com.itextpdf.layout.element.Paragraph;
13 |
14 | import java.io.File;
15 | import java.io.IOException;
16 |
17 | /**
18 | * Simple text annotation example.
19 | */
20 | public class C04E01_01_TextAnnotation {
21 |
22 | public static final String DEST = "results/chapter04/text_annotation.pdf";
23 |
24 | public static void main(String args[]) throws IOException {
25 | File file = new File(DEST);
26 | file.getParentFile().mkdirs();
27 | new C04E01_01_TextAnnotation().createPdf(DEST);
28 | }
29 |
30 | public void createPdf(String dest) throws IOException {
31 |
32 | //Initialize PDF document
33 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
34 |
35 | //Initialize document
36 | Document document = new Document(pdf);
37 | document.add(new Paragraph("The example of text annotation."));
38 |
39 | //Create text annotation
40 | PdfAnnotation ann = new PdfTextAnnotation(new Rectangle(20, 800, 0, 0))
41 | .setColor(Color.GREEN)
42 | .setTitle(new PdfString("iText"))
43 | .setContents("With iText, you can truly take your documentation needs to the next level.")
44 | .setOpen(true);
45 | pdf.getFirstPage().addAnnotation(ann);
46 |
47 | //Close document
48 | document.close();
49 |
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E01_02_LinkAnnotation.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.geom.Rectangle;
5 | import com.itextpdf.kernel.pdf.PdfDocument;
6 | import com.itextpdf.kernel.pdf.PdfWriter;
7 | import com.itextpdf.kernel.pdf.action.PdfAction;
8 | import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation;
9 | import com.itextpdf.layout.Document;
10 | import com.itextpdf.layout.element.Link;
11 | import com.itextpdf.layout.element.Paragraph;
12 |
13 | import java.io.File;
14 | import java.io.IOException;
15 |
16 | /**
17 | * Simple link annotation example.
18 | */
19 | public class C04E01_02_LinkAnnotation {
20 |
21 | public static final String DEST = "results/chapter04/link_annotation.pdf";
22 |
23 | public static void main(String args[]) throws IOException {
24 | File file = new File(DEST);
25 | file.getParentFile().mkdirs();
26 | new C04E01_02_LinkAnnotation().createPdf(DEST);
27 | }
28 |
29 | public void createPdf(String dest) throws IOException {
30 |
31 | //Initialize PDF document
32 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
33 |
34 | //Initialize document
35 | Document document = new Document(pdf);
36 |
37 | //Create link annotation
38 | PdfLinkAnnotation annotation = new PdfLinkAnnotation(new Rectangle(0, 0))
39 | .setAction(PdfAction.createURI("http://itextpdf.com/"));
40 | Link link = new Link("here", annotation);
41 | Paragraph p = new Paragraph("The example of link annotation. Click ")
42 | .add(link.setUnderline())
43 | .add(" to learn more...");
44 | document.add(p);
45 |
46 | //Close document
47 | document.close();
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E01_03_LineAnnotation.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.color.Color;
5 | import com.itextpdf.kernel.geom.Rectangle;
6 | import com.itextpdf.kernel.pdf.*;
7 | import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
8 | import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation;
9 |
10 | import java.io.File;
11 | import java.io.IOException;
12 |
13 | /**
14 | * Simple line annotation example.
15 | */
16 | public class C04E01_03_LineAnnotation {
17 |
18 | public static final String DEST = "results/chapter04/line_annotation.pdf";
19 |
20 | public static void main(String args[]) throws IOException {
21 | File file = new File(DEST);
22 | file.getParentFile().mkdirs();
23 | new C04E01_03_LineAnnotation().createPdf(DEST);
24 | }
25 |
26 | public void createPdf(String dest) throws IOException {
27 |
28 | //Initialize PDF document
29 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
30 | PdfPage page = pdf.addNewPage();
31 |
32 | PdfArray lineEndings = new PdfArray();
33 | lineEndings.add(new PdfName("Diamond"));
34 | lineEndings.add(new PdfName("Diamond"));
35 |
36 | //Create line annotation with inside caption
37 | PdfAnnotation annotation = new PdfLineAnnotation(
38 | new Rectangle(0, 0),
39 | new float[]{20, 790, page.getPageSize().getWidth() - 20, 790})
40 | .setLineEndingStyles((lineEndings))
41 | .setContentsAsCaption(true)
42 | .setTitle(new PdfString("iText"))
43 | .setContents("The example of line annotation")
44 | .setColor(Color.BLUE);
45 | page.addAnnotation(annotation);
46 |
47 | //Close document
48 | pdf.close();
49 |
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E01_04_TextMarkupAnnotation.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.color.Color;
5 | import com.itextpdf.kernel.geom.Rectangle;
6 | import com.itextpdf.kernel.pdf.PdfArray;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfString;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 | import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
11 | import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
12 | import com.itextpdf.layout.Document;
13 | import com.itextpdf.layout.element.Paragraph;
14 | import com.itextpdf.layout.property.TextAlignment;
15 | import com.itextpdf.layout.property.VerticalAlignment;
16 |
17 | import java.io.File;
18 | import java.io.IOException;
19 |
20 | /**
21 | * Simple text markup annotation example.
22 | */
23 | public class C04E01_04_TextMarkupAnnotation {
24 |
25 | public static final String DEST = "results/chapter04/textmarkup_annotation.pdf";
26 |
27 | public static void main(String args[]) throws IOException {
28 | File file = new File(DEST);
29 | file.getParentFile().mkdirs();
30 | new C04E01_04_TextMarkupAnnotation().createPdf(DEST);
31 | }
32 |
33 | public void createPdf(String dest) throws IOException {
34 |
35 | //Initialize PDF document
36 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
37 |
38 | //Initialize document
39 | Document document = new Document(pdf);
40 |
41 | Paragraph p = new Paragraph("The example of text markup annotation.");
42 | document.showTextAligned(p, 20, 795, 1, TextAlignment.LEFT,
43 | VerticalAlignment.MIDDLE, 0);
44 |
45 | //Create text markup annotation
46 | PdfAnnotation ann = PdfTextMarkupAnnotation.createHighLight(new Rectangle(105, 790, 64, 10),
47 | new float[]{169, 790, 105, 790, 169, 800, 105, 800})
48 | .setColor(Color.YELLOW)
49 | .setTitle(new PdfString("Hello!"))
50 | .setContents(new PdfString("I'm a popup."))
51 | .setTitle(new PdfString("iText"))
52 | .setOpen(true)
53 | .setRectangle(new PdfArray(new float[]{100, 600, 200, 100}));
54 | pdf.getFirstPage().addAnnotation(ann);
55 |
56 | //Close document
57 | document.close();
58 |
59 | }
60 | }
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E03_CreateAndFill.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.forms.PdfAcroForm;
5 | import com.itextpdf.forms.fields.PdfFormField;
6 | import com.itextpdf.kernel.pdf.PdfDocument;
7 | import com.itextpdf.kernel.pdf.PdfWriter;
8 | import com.itextpdf.layout.Document;
9 |
10 | import java.io.File;
11 | import java.io.IOException;
12 | import java.util.Map;
13 |
14 | /**
15 | * Simple filling out form example.
16 | */
17 | public class C04E03_CreateAndFill {
18 |
19 | public static final String DEST = "results/chapter04/create_and_fill.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C04E03_CreateAndFill().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 |
29 | //Initialize PDF document
30 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
31 |
32 | // Initialize document
33 | Document doc = new Document(pdf);
34 |
35 | PdfAcroForm form = C04E02_JobApplication.addAcroForm(doc);
36 | Map fields = form.getFormFields();
37 | fields.get("name").setValue("James Bond");
38 | fields.get("language").setValue("English");
39 | fields.get("experience1").setValue("Off");
40 | fields.get("experience2").setValue("Yes");
41 | fields.get("experience3").setValue("Yes");
42 | fields.get("shift").setValue("Any");
43 | fields.get("info").setValue("I was 38 years old when I became an MI6 agent.");
44 |
45 | doc.close();
46 |
47 | }
48 | }
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E04_FillForm.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.pdf.PdfDocument;
5 | import com.itextpdf.kernel.pdf.PdfReader;
6 | import com.itextpdf.kernel.pdf.PdfWriter;
7 | import com.itextpdf.forms.PdfAcroForm;
8 | import com.itextpdf.forms.fields.PdfFormField;
9 |
10 | import java.io.*;
11 | import java.util.Map;
12 |
13 | /**
14 | * Simple filling out form example.
15 | */
16 | public class C04E04_FillForm {
17 |
18 | public static final String SRC = "src/main/resources/pdf/job_application.pdf";
19 | public static final String DEST = "results/chapter04/fill_form.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C04E04_FillForm().manipulatePdf(SRC, DEST);
25 | }
26 |
27 | public void manipulatePdf(String src, String dest) throws IOException {
28 |
29 | //Initialize PDF document
30 | PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
31 |
32 |
33 | PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
34 | Map fields = form.getFormFields();
35 | fields.get("name").setValue("James Bond");
36 | fields.get("language").setValue("English");
37 | fields.get("experience1").setValue("Off");
38 | fields.get("experience2").setValue("Yes");
39 | fields.get("experience3").setValue("Yes");
40 | fields.get("shift").setValue("Any");
41 | fields.get("info").setValue("I was 38 years old when I became an MI6 agent.");
42 |
43 | pdf.close();
44 |
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/java/C04E05_FlattenForm.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/9/12.
3 | */
4 | import com.itextpdf.kernel.pdf.PdfDocument;
5 | import com.itextpdf.kernel.pdf.PdfReader;
6 | import com.itextpdf.kernel.pdf.PdfWriter;
7 | import com.itextpdf.forms.PdfAcroForm;
8 | import com.itextpdf.forms.fields.PdfFormField;
9 |
10 | import java.io.*;
11 | import java.util.Map;
12 |
13 | /**
14 | * Simple filling out form example.
15 | */
16 | public class C04E05_FlattenForm {
17 |
18 | public static final String SRC = "src/main/resources/pdf/job_application.pdf";
19 | public static final String DEST = "results/chapter04/flatten_form.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C04E05_FlattenForm().manipulatePdf(SRC, DEST);
25 | }
26 |
27 | public void manipulatePdf(String src, String dest) throws IOException {
28 |
29 | //Initialize PDF document
30 | PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
31 |
32 |
33 | PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
34 | Map fields = form.getFormFields();
35 | fields.get("name").setValue("James Bond");
36 | fields.get("language").setValue("English");
37 | fields.get("experience1").setValue("Off");
38 | fields.get("experience2").setValue("Yes");
39 | fields.get("experience3").setValue("Yes");
40 | fields.get("shift").setValue("Any");
41 | fields.get("info").setValue("I was 38 years old when I became an MI6 agent.");
42 | form.flattenFields();
43 |
44 | pdf.close();
45 |
46 | }
47 | }
--------------------------------------------------------------------------------
/iText-start/iText4/src/main/resources/pdf/job_application.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText4/src/main/resources/pdf/job_application.pdf
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 1.8
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/iText-start/iText5/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText5/iText5.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText5/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText5
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 | com.itextpdf
15 | kernel
16 | 7.0.3
17 |
18 |
19 |
20 |
21 | com.itextpdf
22 | io
23 | 7.0.3
24 |
25 |
26 |
27 |
28 | com.itextpdf
29 | layout
30 | 7.0.3
31 |
32 |
33 |
34 |
35 | com.itextpdf
36 | forms
37 | 7.0.3
38 |
39 |
40 |
41 |
42 | com.itextpdf
43 | pdfa
44 | 7.0.3
45 |
46 |
47 |
48 |
49 | com.itextpdf
50 | sign
51 | 7.0.3
52 |
53 |
54 |
55 |
56 | com.itextpdf
57 | barcodes
58 | 7.0.3
59 |
60 |
61 |
62 |
63 | com.itextpdf
64 | font-asian
65 | 7.0.3
66 |
67 |
68 |
69 |
70 | com.itextpdf
71 | hyph
72 | 7.0.3
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/java/C05E01_AddAnnotationsAndContent.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/11/17.
3 | */
4 | import com.itextpdf.forms.PdfAcroForm;
5 | import com.itextpdf.forms.fields.PdfButtonFormField;
6 | import com.itextpdf.forms.fields.PdfFormField;
7 | import com.itextpdf.io.font.FontConstants;
8 | import com.itextpdf.kernel.font.PdfFontFactory;
9 | import com.itextpdf.kernel.geom.Rectangle;
10 | import com.itextpdf.kernel.pdf.PdfDocument;
11 | import com.itextpdf.kernel.pdf.PdfReader;
12 | import com.itextpdf.kernel.pdf.PdfString;
13 | import com.itextpdf.kernel.pdf.PdfWriter;
14 | import com.itextpdf.kernel.pdf.action.PdfAction;
15 | import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
16 | import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
17 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
18 | import java.io.File;
19 | import java.io.IOException;
20 |
21 | /**
22 | * Simple adding annotations example.
23 | */
24 | public class C05E01_AddAnnotationsAndContent {
25 |
26 | public static final String SRC = "src/main/resources/pdf/job_application.pdf";
27 | public static final String DEST = "results/chapter05/edited_job_application.pdf";
28 |
29 | public static void main(String args[]) throws IOException {
30 | File file = new File(DEST);
31 | file.getParentFile().mkdirs();
32 | new C05E01_AddAnnotationsAndContent().manipulatePdf(SRC, DEST);
33 | }
34 |
35 | public void manipulatePdf(String src, String dest) throws IOException {
36 |
37 | //Initialize PDF document
38 | PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
39 |
40 | //Add text annotation
41 | PdfAnnotation ann = new PdfTextAnnotation(new Rectangle(400, 795, 0, 0))
42 | .setTitle(new PdfString("iText"))
43 | .setContents("Please, fill out the form.")
44 | .setOpen(true);
45 | pdfDoc.getFirstPage().addAnnotation(ann);
46 |
47 | PdfCanvas canvas = new PdfCanvas(pdfDoc.getFirstPage());
48 | canvas.beginText().setFontAndSize(PdfFontFactory.createFont(FontConstants.HELVETICA), 12)
49 | .moveText(265, 597)
50 | .showText("I agree to the terms and conditions.")
51 | .endText();
52 |
53 | //Add form field
54 | PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
55 | PdfButtonFormField checkField = PdfFormField.createCheckBox(pdfDoc, new Rectangle(245, 594, 15, 15),
56 | "agreement", "Off", PdfFormField.TYPE_CHECK);
57 | checkField.setRequired(true);
58 | form.addField(checkField);
59 |
60 | //Update reset button
61 | form.getField("reset").setAction(PdfAction.createResetForm(new String[]{"name", "language",
62 | "experience1", "experience2", "experience3", "shift", "info", "agreement"}, 0));
63 |
64 | pdfDoc.close();
65 |
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/java/C05E02_FillAndModifyForm.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/11/17.
3 | */
4 | import com.itextpdf.forms.PdfAcroForm;
5 | import com.itextpdf.forms.fields.PdfFormField;
6 | import com.itextpdf.io.font.FontConstants;
7 | import com.itextpdf.kernel.color.Color;
8 | import com.itextpdf.kernel.font.PdfFont;
9 | import com.itextpdf.kernel.font.PdfFontFactory;
10 | import com.itextpdf.kernel.pdf.*;
11 |
12 | import java.io.File;
13 | import java.io.IOException;
14 | import java.util.ArrayList;
15 | import java.util.List;
16 | import java.util.Map;
17 |
18 | /**
19 | * Simple filling out form example.
20 | */
21 | public class C05E02_FillAndModifyForm {
22 |
23 | public static final String SRC = "src/main/resources/pdf/job_application.pdf";
24 | public static final String DEST = "results/chapter05/filled_out_job_application.pdf";
25 |
26 | public static void main(String args[]) throws IOException {
27 | File file = new File(DEST);
28 | file.getParentFile().mkdirs();
29 | new C05E02_FillAndModifyForm().manipulatePdf(SRC, DEST);
30 | }
31 |
32 | public void manipulatePdf(String src, String dest) throws IOException {
33 |
34 | //Initialize PDF document
35 | PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
36 |
37 |
38 | PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
39 | Map fields = form.getFormFields();
40 |
41 | fields.get("name").setValue("James Bond").setBackgroundColor(Color.ORANGE);
42 | fields.get("language").setValue("English");
43 |
44 | fields.get("experience1").setValue("Yes");
45 | fields.get("experience2").setValue("Yes");
46 | fields.get("experience3").setValue("Yes");
47 |
48 | List options = new ArrayList();
49 | options.add(new PdfString("Any"));
50 | options.add(new PdfString("8.30 am - 12.30 pm"));
51 | options.add(new PdfString("12.30 pm - 4.30 pm"));
52 | options.add(new PdfString("4.30 pm - 8.30 pm"));
53 | options.add(new PdfString("8.30 pm - 12.30 am"));
54 | options.add(new PdfString("12.30 am - 4.30 am"));
55 | options.add(new PdfString("4.30 am - 8.30 am"));
56 | PdfArray arr = new PdfArray(options);
57 | fields.get("shift").setOptions(arr);
58 | fields.get("shift").setValue("Any");
59 |
60 | PdfFont courier = PdfFontFactory.createFont(FontConstants.COURIER);
61 | fields.get("info").setValue("I was 38 years old when I became an MI6 agent.", courier, 7f);
62 |
63 | pdfDoc.close();
64 |
65 | }
66 | }
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/java/C05E03_AddContent.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/11/17.
3 | */
4 | import com.itextpdf.io.font.FontConstants;
5 | import com.itextpdf.kernel.color.Color;
6 | import com.itextpdf.kernel.font.PdfFontFactory;
7 | import com.itextpdf.kernel.geom.Rectangle;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfPage;
10 | import com.itextpdf.kernel.pdf.PdfReader;
11 | import com.itextpdf.kernel.pdf.PdfWriter;
12 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
13 | import com.itextpdf.kernel.pdf.extgstate.PdfExtGState;
14 | import com.itextpdf.layout.Document;
15 | import com.itextpdf.layout.element.Paragraph;
16 | import com.itextpdf.layout.property.TextAlignment;
17 | import com.itextpdf.layout.property.VerticalAlignment;
18 |
19 | import java.io.File;
20 | import java.io.IOException;
21 |
22 | /**
23 | * Simple adding content example.
24 | */
25 | public class C05E03_AddContent {
26 |
27 | public static final String SRC = "src/main/resources/pdf/ufo.pdf";
28 |
29 | public static final String DEST = "results/chapter05/add_content.pdf";
30 |
31 | public static void main(String args[]) throws IOException {
32 | File file = new File(DEST);
33 | file.getParentFile().mkdirs();
34 | new C05E03_AddContent().manipulatePdf(SRC, DEST);
35 | }
36 |
37 | public void manipulatePdf(String src, String dest) throws IOException {
38 |
39 | //Initialize PDF document
40 | PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
41 |
42 | Document document = new Document(pdfDoc);
43 | Rectangle pageSize;
44 | PdfCanvas canvas;
45 | int n = pdfDoc.getNumberOfPages();
46 | for (int i = 1; i <= n; i++) {
47 | PdfPage page = pdfDoc.getPage(i);
48 | pageSize = page.getPageSize();
49 | canvas = new PdfCanvas(page);
50 | //Draw header text
51 | canvas.beginText().setFontAndSize(PdfFontFactory.createFont(FontConstants.HELVETICA), 7)
52 | .moveText(pageSize.getWidth() / 2 - 24, pageSize.getHeight() - 10)
53 | .showText("I want to believe")
54 | .endText();
55 | //Draw footer line
56 | canvas.setStrokeColor(Color.BLACK)
57 | .setLineWidth(.2f)
58 | .moveTo(pageSize.getWidth() / 2 - 30, 20)
59 | .lineTo(pageSize.getWidth() / 2 + 30, 20).stroke();
60 | //Draw page number
61 | canvas.beginText().setFontAndSize(PdfFontFactory.createFont(FontConstants.HELVETICA), 7)
62 | .moveText(pageSize.getWidth() / 2 - 7, 10)
63 | .showText(String.valueOf(i))
64 | .showText(" of ")
65 | .showText(String.valueOf(n))
66 | .endText();
67 | //Draw watermark
68 | Paragraph p = new Paragraph("CONFIDENTIAL").setFontSize(60);
69 | canvas.saveState();
70 | PdfExtGState gs1 = new PdfExtGState().setFillOpacity(0.2f);
71 | canvas.setExtGState(gs1);
72 | document.showTextAligned(p,
73 | pageSize.getWidth() / 2, pageSize.getHeight() / 2,
74 | pdfDoc.getPageNumber(page),
75 | TextAlignment.CENTER, VerticalAlignment.MIDDLE, 45);
76 | canvas.restoreState();
77 | }
78 |
79 | pdfDoc.close();
80 |
81 | }
82 | }
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/java/C05E04_ChangePage.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/11/17.
3 | */
4 | import com.itextpdf.kernel.color.*;
5 | import com.itextpdf.kernel.geom.Rectangle;
6 | import com.itextpdf.kernel.pdf.*;
7 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
8 |
9 | import java.io.File;
10 | import java.io.IOException;
11 |
12 | /**
13 | * Simple changing page properties example.
14 | */
15 | public class C05E04_ChangePage {
16 |
17 | public static final String SRC = "src/main/resources/pdf/ufo.pdf";
18 | public static final String DEST = "results/chapter05/change_page.pdf";
19 |
20 | public static void main(String args[]) throws IOException {
21 | File file = new File(DEST);
22 | file.getParentFile().mkdirs();
23 | new C05E04_ChangePage().manipulatePdf(SRC, DEST);
24 | }
25 |
26 | public void manipulatePdf(String src, String dest) throws IOException {
27 |
28 | //Initialize PDF document
29 | PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
30 |
31 |
32 | float margin = 72;
33 | for (int i = 1; i <= pdfDoc.getNumberOfPages(); i++) {
34 | PdfPage page = pdfDoc.getPage(i);
35 | // change page size
36 | Rectangle mediaBox = page.getMediaBox();
37 | Rectangle newMediaBox = new Rectangle(mediaBox.getLeft() - margin, mediaBox.getBottom() - margin,
38 | mediaBox.getWidth() + margin * 2, mediaBox.getHeight() + margin * 2);
39 | page.setMediaBox(newMediaBox);
40 | // add border
41 | PdfCanvas over = new PdfCanvas(page);
42 | over.setStrokeColor(Color.GRAY);
43 | over.rectangle(mediaBox.getLeft(), mediaBox.getBottom(), mediaBox.getWidth(), mediaBox.getHeight());
44 | over.stroke();
45 | // change rotation of the even pages
46 | if (i % 2 == 0) {
47 | page.setRotation(180);
48 | }
49 | }
50 |
51 | pdfDoc.close();
52 |
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/resources/pdf/job_application.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText5/src/main/resources/pdf/job_application.pdf
--------------------------------------------------------------------------------
/iText-start/iText5/src/main/resources/pdf/ufo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText5/src/main/resources/pdf/ufo.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/iText-start/iText6/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iText-start/iText6/iText6.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText6/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText6
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 |
15 | com.itextpdf
16 | kernel
17 | 7.0.3
18 |
19 |
20 |
21 |
22 | com.itextpdf
23 | io
24 | 7.0.3
25 |
26 |
27 |
28 |
29 | com.itextpdf
30 | layout
31 | 7.0.3
32 |
33 |
34 |
35 |
36 | com.itextpdf
37 | forms
38 | 7.0.3
39 |
40 |
41 |
42 |
43 | com.itextpdf
44 | pdfa
45 | 7.0.3
46 |
47 |
48 |
49 |
50 | com.itextpdf
51 | sign
52 | 7.0.3
53 |
54 |
55 |
56 |
57 | com.itextpdf
58 | barcodes
59 | 7.0.3
60 |
61 |
62 |
63 |
64 | com.itextpdf
65 | font-asian
66 | 7.0.3
67 |
68 |
69 |
70 |
71 | com.itextpdf
72 | hyph
73 | 7.0.3
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E01_TheGoldenGateBridge_Scale_Shrink.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.kernel.geom.AffineTransform;
5 | import com.itextpdf.kernel.geom.PageSize;
6 | import com.itextpdf.kernel.geom.Rectangle;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfPage;
9 | import com.itextpdf.kernel.pdf.PdfReader;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
12 | import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
13 |
14 | import java.io.File;
15 | import java.io.IOException;
16 |
17 | public class C06E01_TheGoldenGateBridge_Scale_Shrink {
18 | public static final String SRC = "src/main/resources/pdf/the_golden_gate_bridge.pdf";
19 | public static final String DEST = "results/chapter06/the_golden_gate_bridge_scale_shrink.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C06E01_TheGoldenGateBridge_Scale_Shrink().createPdf(SRC, DEST);
25 | }
26 |
27 | public void createPdf(String src, String dest) throws IOException {
28 | //Initialize PDF document
29 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
30 | PdfDocument origPdf = new PdfDocument(new PdfReader(src));
31 |
32 | //Original page size
33 | PdfPage origPage = origPdf.getPage(1);
34 | Rectangle orig = origPage.getPageSizeWithRotation();
35 |
36 | //Add A4 page
37 | PdfPage page = pdf.addNewPage(PageSize.A4.rotate());
38 | //Shrink original page content using transformation matrix
39 | PdfCanvas canvas = new PdfCanvas(page);
40 | AffineTransform transformationMatrix = AffineTransform.getScaleInstance(page.getPageSize().getWidth() / orig.getWidth(), page.getPageSize().getHeight() / orig.getHeight());
41 | canvas.concatMatrix(transformationMatrix);
42 | PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
43 | canvas.addXObject(pageCopy, 0, 0);
44 |
45 | //Add page with original size
46 | pdf.addPage(origPage.copyTo(pdf));
47 |
48 | //Add A2 page
49 | page = pdf.addNewPage(PageSize.A2.rotate());
50 | //Scale original page content using transformation matrix
51 | canvas = new PdfCanvas(page);
52 | transformationMatrix = AffineTransform.getScaleInstance(page.getPageSize().getWidth() / orig.getWidth(), page.getPageSize().getHeight() / orig.getHeight());
53 | canvas.concatMatrix(transformationMatrix);
54 | canvas.addXObject(pageCopy, 0, 0);
55 |
56 | pdf.close();
57 | origPdf.close();
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E02_TheGoldenGateBridge_Tiles.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.kernel.geom.AffineTransform;
5 | import com.itextpdf.kernel.geom.PageSize;
6 | import com.itextpdf.kernel.geom.Rectangle;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfPage;
9 | import com.itextpdf.kernel.pdf.PdfReader;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
12 | import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
13 |
14 | import java.io.File;
15 | import java.io.IOException;
16 |
17 | public class C06E02_TheGoldenGateBridge_Tiles {
18 | public static final String SRC = "src/main/resources/pdf/the_golden_gate_bridge.pdf";
19 | public static final String DEST = "results/chapter06/the_golden_gate_bridge_tiles.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C06E02_TheGoldenGateBridge_Tiles().createPdf(SRC, DEST);
25 | }
26 |
27 | public void createPdf(String src, String dest) throws IOException {
28 | //Initialize PDF document
29 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
30 | PdfDocument sourcePdf = new PdfDocument(new PdfReader(src));
31 |
32 | //Original page
33 | PdfPage origPage = sourcePdf.getPage(1);
34 | PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
35 |
36 | //Original page size
37 | Rectangle orig = origPage.getPageSize();
38 | //Tile size
39 | Rectangle tileSize = PageSize.A4.rotate();
40 | // Transformation matrix
41 | AffineTransform transformationMatrix = AffineTransform.getScaleInstance(tileSize.getWidth() / orig.getWidth() * 2f, tileSize.getHeight() / orig.getHeight() * 2f);
42 |
43 |
44 | //The first tile
45 | PdfPage page = pdf.addNewPage(PageSize.A4.rotate());
46 | PdfCanvas canvas = new PdfCanvas(page);
47 | canvas.concatMatrix(transformationMatrix);
48 | canvas.addXObject(pageCopy, 0, -orig.getHeight() / 2f);
49 |
50 | //The second tile
51 | page = pdf.addNewPage(PageSize.A4.rotate());
52 | canvas = new PdfCanvas(page);
53 | canvas.concatMatrix(transformationMatrix);
54 | canvas.addXObject(pageCopy, -orig.getWidth() / 2f, -orig.getHeight() / 2f);
55 |
56 | //The third tile
57 | page = pdf.addNewPage(PageSize.A4.rotate());
58 | canvas = new PdfCanvas(page);
59 | canvas.concatMatrix(transformationMatrix);
60 | canvas.addXObject(pageCopy, 0, 0);
61 |
62 | //The fourth tile
63 | page = pdf.addNewPage(PageSize.A4.rotate());
64 | canvas = new PdfCanvas(page);
65 | canvas.concatMatrix(transformationMatrix);
66 | canvas.addXObject(pageCopy, -orig.getWidth() / 2f, 0);
67 |
68 | pdf.close();
69 | sourcePdf.close();
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E03_TheGoldenGateBridge_N_up.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.kernel.geom.AffineTransform;
5 | import com.itextpdf.kernel.geom.PageSize;
6 | import com.itextpdf.kernel.geom.Rectangle;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfPage;
9 | import com.itextpdf.kernel.pdf.PdfReader;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 | import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
12 | import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
13 |
14 | import java.io.File;
15 | import java.io.IOException;
16 |
17 | public class C06E03_TheGoldenGateBridge_N_up {
18 | public static final String SRC = "src/main/resources/pdf/the_golden_gate_bridge.pdf";
19 | public static final String DEST = "results/chapter06/the_golden_gate_bridge_nup.pdf";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C06E03_TheGoldenGateBridge_N_up().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 | //Initialize PDF document
29 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
30 | PdfDocument sourcePdf = new PdfDocument(new PdfReader(SRC));
31 |
32 | //Original page
33 | PdfPage origPage = sourcePdf.getPage(1);
34 |
35 | //Original page size
36 | Rectangle orig = origPage.getPageSize();
37 | PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
38 |
39 | //N-up page
40 | PageSize nUpPageSize = PageSize.A4.rotate();
41 | PdfPage page = pdf.addNewPage(nUpPageSize);
42 | PdfCanvas canvas = new PdfCanvas(page);
43 |
44 | //Scale page
45 | AffineTransform transformationMatrix = AffineTransform.getScaleInstance(nUpPageSize.getWidth() / orig.getWidth() / 2f, nUpPageSize.getHeight() / orig.getHeight() / 2f);
46 | canvas.concatMatrix(transformationMatrix);
47 |
48 | //Add pages to N-up page
49 | canvas.addXObject(pageCopy, 0, orig.getHeight());
50 | canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());
51 | canvas.addXObject(pageCopy, 0, 0);
52 | canvas.addXObject(pageCopy, orig.getWidth(), 0);
53 |
54 | pdf.close();
55 | sourcePdf.close();
56 | }
57 | }
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E04_88th_Oscar_Combine.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.kernel.pdf.*;
5 | import com.itextpdf.kernel.utils.PdfMerger;
6 |
7 | import java.io.File;
8 | import java.io.IOException;
9 |
10 | public class C06E04_88th_Oscar_Combine {
11 | public static final String SRC1 = "src/main/resources/pdf/88th_reminder_list.pdf";
12 | public static final String SRC2 = "src/main/resources/pdf/88th_noms_announcement.pdf";
13 | public static final String DEST = "results/chapter06/88th_oscar_combined_documents.pdf";
14 |
15 | public static void main(String args[]) throws IOException {
16 | File file = new File(DEST);
17 | file.getParentFile().mkdirs();
18 | new C06E04_88th_Oscar_Combine().createPdf(DEST);
19 | }
20 |
21 | public void createPdf(String dest) throws IOException {
22 | //Initialize PDF document with output intent
23 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
24 | PdfMerger merger = new PdfMerger(pdf);
25 |
26 | //Add pages from the first document
27 | PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));
28 | merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());
29 |
30 | //Add pages from the second pdf document
31 | PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));
32 | merger.merge(secondSourcePdf, 1, secondSourcePdf.getNumberOfPages());
33 |
34 | firstSourcePdf.close();
35 | secondSourcePdf.close();
36 | pdf.close();
37 | }
38 | }
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E05_88th_Oscar_CombineXofY.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.kernel.pdf.PdfDocument;
5 | import com.itextpdf.kernel.pdf.PdfReader;
6 | import com.itextpdf.kernel.pdf.PdfWriter;
7 | import com.itextpdf.kernel.utils.PdfMerger;
8 |
9 | import java.io.File;
10 | import java.io.IOException;
11 | import java.util.Arrays;
12 |
13 | public class C06E05_88th_Oscar_CombineXofY {
14 | public static final String SRC1 = "src/main/resources/pdf/88th_reminder_list.pdf";
15 | public static final String SRC2 = "src/main/resources/pdf/88th_noms_announcement.pdf";
16 | public static final String DEST = "results/chapter06/88th_oscar_combined_documents_xy_pages.pdf";
17 |
18 | public static void main(String args[]) throws IOException {
19 | File file = new File(DEST);
20 | file.getParentFile().mkdirs();
21 | new C06E05_88th_Oscar_CombineXofY().createPdf(DEST);
22 | }
23 |
24 | public void createPdf(String dest) throws IOException {
25 | //Initialize PDF document with output intent
26 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
27 |
28 | PdfMerger merger = new PdfMerger(pdf);
29 |
30 | //Add pages from the first document
31 | PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));
32 | merger.merge(firstSourcePdf, Arrays.asList(1, 5, 7, 1));
33 |
34 | //Add pages from the second pdf document
35 | PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));
36 | merger.merge(secondSourcePdf, Arrays.asList(1, 15));
37 |
38 | firstSourcePdf.close();
39 | secondSourcePdf.close();
40 | pdf.close();
41 | }
42 | }
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E07_Combine_Forms.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.forms.PdfPageFormCopier;
5 | import com.itextpdf.kernel.pdf.*;
6 |
7 | import java.io.File;
8 | import java.io.IOException;
9 |
10 | public class C06E07_Combine_Forms {
11 | public static final String DEST = "results/chapter06/combined_forms.pdf";
12 | public static final String SRC1 = "src/main/resources/pdf/subscribe.pdf";
13 | public static final String SRC2 = "src/main/resources/pdf/state.pdf";
14 |
15 | public static void main(String args[]) throws IOException {
16 | File file = new File(DEST);
17 | file.getParentFile().mkdirs();
18 | new C06E07_Combine_Forms().createPdf(DEST);
19 | }
20 |
21 | public void createPdf(String dest) throws IOException {
22 | PdfDocument destPdfDocument = new PdfDocument(new PdfWriter(dest));
23 | PdfDocument[] sources = new PdfDocument[] {
24 | new PdfDocument(new PdfReader(SRC1)),
25 | new PdfDocument(new PdfReader(SRC2))
26 | };
27 | PdfPageFormCopier formCopier = new PdfPageFormCopier();
28 | for (PdfDocument sourcePdfDocument : sources) {
29 | sourcePdfDocument.copyPagesTo(
30 | 1, sourcePdfDocument.getNumberOfPages(),
31 | destPdfDocument, formCopier);
32 | sourcePdfDocument.close();
33 | }
34 | destPdfDocument.close();
35 | }
36 | }
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E08_FillOutAndMergeForms.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.forms.PdfAcroForm;
5 | import com.itextpdf.forms.PdfPageFormCopier;
6 | import com.itextpdf.forms.fields.PdfFormField;
7 | import com.itextpdf.io.source.ByteArrayOutputStream;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfReader;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 |
12 | import java.io.*;
13 | import java.util.Map;
14 | import java.util.StringTokenizer;
15 |
16 | public class C06E08_FillOutAndMergeForms {
17 | public static final String DEST = "results/chapter06/fill_out_and_merge_forms.pdf";
18 | public static final String SRC = "src/main/resources/pdf/state.pdf";
19 | public static final String DATA = "src/main/resources/data/united_states.csv";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST);
23 | file.getParentFile().mkdirs();
24 | new C06E08_FillOutAndMergeForms().createPdf(DEST);
25 | }
26 |
27 | public void createPdf(String dest) throws IOException {
28 | PdfDocument pdfDocument = new PdfDocument(new PdfWriter(dest));
29 | PdfPageFormCopier formCopier = new PdfPageFormCopier();
30 |
31 | BufferedReader bufferedReader = new BufferedReader(new FileReader(DATA));
32 | String line;
33 | boolean headerLine = true;
34 | int i = 1;
35 | while ((line = bufferedReader.readLine()) != null) {
36 | if (headerLine) {
37 | headerLine = false;
38 | continue;
39 | }
40 |
41 | ByteArrayOutputStream baos = new ByteArrayOutputStream();
42 | PdfDocument sourcePdfDocument = new PdfDocument(new PdfReader(SRC), new PdfWriter(baos));
43 |
44 | //Rename fields
45 | i++;
46 | PdfAcroForm form = PdfAcroForm.getAcroForm(sourcePdfDocument, true);
47 | form.renameField("name", "name_" + i);
48 | form.renameField("abbr", "abbr_" + i);
49 | form.renameField("capital", "capital_" + i);
50 | form.renameField("city", "city_" + i);
51 | form.renameField("population", "population_" + i);
52 | form.renameField("surface", "surface_" + i);
53 | form.renameField("timezone1", "timezone1_" + i);
54 | form.renameField("timezone2", "timezone2_" + i);
55 | form.renameField("dst", "dst_" + i);
56 |
57 | //Fill out fields
58 | StringTokenizer tokenizer = new StringTokenizer(line, ";");
59 | Map fields = form.getFormFields();
60 | fields.get("name_" + i).setValue(tokenizer.nextToken());
61 | fields.get("abbr_" + i).setValue(tokenizer.nextToken());
62 | fields.get("capital_" + i).setValue(tokenizer.nextToken());
63 | fields.get("city_" + i).setValue(tokenizer.nextToken());
64 | fields.get("population_" + i).setValue(tokenizer.nextToken());
65 | fields.get("surface_" + i).setValue(tokenizer.nextToken());
66 | fields.get("timezone1_" + i).setValue(tokenizer.nextToken());
67 | fields.get("timezone2_" + i).setValue(tokenizer.nextToken());
68 | fields.get("dst_" + i).setValue(tokenizer.nextToken());
69 |
70 | sourcePdfDocument.close();
71 | sourcePdfDocument = new PdfDocument(new PdfReader(new ByteArrayInputStream(baos.toByteArray())));
72 |
73 | //Copy pages
74 | sourcePdfDocument.copyPagesTo(1, sourcePdfDocument.getNumberOfPages(), pdfDocument, formCopier);
75 | sourcePdfDocument.close();
76 | }
77 |
78 | bufferedReader.close();
79 | pdfDocument.close();
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/java/C06E09_FillOutFlattenAndMergeForms.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/7.
3 | */
4 | import com.itextpdf.forms.PdfAcroForm;
5 | import com.itextpdf.forms.fields.PdfFormField;
6 | import com.itextpdf.io.source.ByteArrayOutputStream;
7 | import com.itextpdf.kernel.pdf.PdfDocument;
8 | import com.itextpdf.kernel.pdf.PdfReader;
9 | import com.itextpdf.kernel.pdf.PdfWriter;
10 |
11 | import java.io.*;
12 | import java.util.Map;
13 | import java.util.StringTokenizer;
14 |
15 | public class C06E09_FillOutFlattenAndMergeForms {
16 | public static final String DEST1 = "results/chapter06/fill_out_flatten_forms_merge.pdf";
17 | public static final String DEST2 = "results/chapter06/fill_out_flatten_forms_smart_merge.pdf";
18 | public static final String SRC = "src/main/resources/pdf/state.pdf";
19 | public static final String DATA = "src/main/resources/data/united_states.csv";
20 |
21 | public static void main(String args[]) throws IOException {
22 | File file = new File(DEST1);
23 | file.getParentFile().mkdirs();
24 | file = new File(DEST2);
25 | file.getParentFile().mkdirs();
26 | new C06E09_FillOutFlattenAndMergeForms().createPdf(DEST1, DEST2);
27 | }
28 |
29 | public void createPdf(String dest1, String dest2) throws IOException {
30 | PdfDocument destPdfDocument = new PdfDocument(new PdfWriter(dest1));
31 | //Smart mode
32 | PdfDocument destPdfDocumentSmartMode = new PdfDocument(new PdfWriter(dest2).setSmartMode(true));
33 |
34 | BufferedReader bufferedReader = new BufferedReader(new FileReader(DATA));
35 | String line;
36 | boolean headerLine = true;
37 | while ((line = bufferedReader.readLine()) != null) {
38 | if (headerLine) {
39 | headerLine = false;
40 | continue;
41 | }
42 | ByteArrayOutputStream baos = new ByteArrayOutputStream();
43 | PdfDocument sourcePdfDocument = new PdfDocument(new PdfReader(SRC), new PdfWriter(baos));
44 |
45 | //Read fields
46 | PdfAcroForm form = PdfAcroForm.getAcroForm(sourcePdfDocument, true);
47 | StringTokenizer tokenizer = new StringTokenizer(line, ";");
48 | Map fields = form.getFormFields();
49 |
50 | //Fill out fields
51 | fields.get("name").setValue(tokenizer.nextToken());
52 | fields.get("abbr").setValue(tokenizer.nextToken());
53 | fields.get("capital").setValue(tokenizer.nextToken());
54 | fields.get("city").setValue(tokenizer.nextToken());
55 | fields.get("population").setValue(tokenizer.nextToken());
56 | fields.get("surface").setValue(tokenizer.nextToken());
57 | fields.get("timezone1").setValue(tokenizer.nextToken());
58 | fields.get("timezone2").setValue(tokenizer.nextToken());
59 | fields.get("dst").setValue(tokenizer.nextToken());
60 |
61 | //Flatten fields
62 | form.flattenFields();
63 |
64 | sourcePdfDocument.close();
65 | sourcePdfDocument = new PdfDocument(new PdfReader(new ByteArrayInputStream(baos.toByteArray())));
66 |
67 | //Copy pages
68 | sourcePdfDocument.copyPagesTo(1, sourcePdfDocument.getNumberOfPages(), destPdfDocument, null);
69 | sourcePdfDocument.copyPagesTo(1, sourcePdfDocument.getNumberOfPages(), destPdfDocumentSmartMode, null);
70 |
71 | sourcePdfDocument.close();
72 | }
73 |
74 | bufferedReader.close();
75 |
76 | destPdfDocument.close();
77 | destPdfDocumentSmartMode.close();
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/data/united_states.csv:
--------------------------------------------------------------------------------
1 | name;abbr;capital;most populous city;population;square miles;time zone 1;time zone 2;dst
2 | ALABAMA;AL;Montgomery;Birmingham;4,708,708;52,423;CST (UTC-6);EST (UTC-5);YES
3 | ALASKA;AK;Juneau;Anchorage;698,473;656,425;AKST (UTC-09) ;HST (UTC-10) ;YES
4 | ARIZONA;AZ;Phoenix;Phoenix;6,595,778;114,006;MT (UTC-07); ;NO
5 | ARKANSAS;AR;Little Rock;Little Rock;2,889,450;53,182;CST (UTC-6); ;YES
6 | CALIFORNIA;CA;Sacramento;Los Angeles;36,961,664;163,707;PT (UTC-8); ;YES
7 | COLORADO;CO;Denver;Denver;5,024,748;104,100;MT (UTC-07); ;YES
8 | CONNECTICUT;CT;Hartford;Bridgeport;3,518,288;5,544;EST (UTC-5); ;YES
9 | DELAWARE;DE;Dover;Wilmington;885,122;1,954;EST (UTC-5); ;YES
10 | FLORIDA;FL;Tallahassee;Jacksonville;18,537,969;65,758;EST (UTC-5);CST (UTC-6);YES
11 | GEORGIA;GA;Atlanta;Atlanta;9,829,211;59,441;EST (UTC-5); ;YES
12 | HAWAII;HI;Honolulu;Honolulu;1,295,178;10,932;HST (UTC-10) ; ;NO
13 | IDAHO;ID;Boise;Boise;1,545,801;83,574;MT (UTC-07);PT (UTC-8);YES
14 | ILLINOIS;IL;Springfield;Chicago;12,910,409;57,918;CST (UTC-6); ;YES
15 | INDIANA;IN;Indianapolis;Indianapolis;6,423,113;36,420;EST (UTC-5);CST (UTC-6);YES
16 | IOWA;IA;Des Moines;Des Moines;3,007,856;56,276;CST (UTC-6); ;YES
17 | KANSAS;KS;Topeka;Wichita;2,818,747;82,282;CST (UTC-6);MT (UTC-07);YES
18 | KENTUCKY;KY;Frankfort;Louisville;4,314,113;40,411;EST (UTC-5);CST (UTC-6);YES
19 | LOUISIANA;LA;Baton Rouge;New Orleans;4,492,076;51,843;CST (UTC-6); ;YES
20 | MAINE;ME;Augusta;Portland;1,318,301;35,387;EST (UTC-5); ;YES
21 | MARYLAND;MD;Annapolis;Baltimore;5,699,478;12,407;EST (UTC-5); ;YES
22 | MASSACHUSETTS;MA;Boston;Boston;6,593,587;10,555;EST (UTC-5); ;YES
23 | MICHIGAN;MI;Lansing;Detroit;9,969,727;96,810;EST (UTC-5);CST (UTC-6);YES
24 | MINNESOTA;MN;Saint Paul;Minneapolis;5,266,214;86,943;CST (UTC-6); ;YES
25 | MISSISSIPPI;MS;Jackson;Jackson;2,951,996;48,434;CST (UTC-6); ;YES
26 | MISSOURI;MO;Jefferson City;Kansas City;5,987,580;69,709;CST (UTC-6); ;YES
27 | MONTANA;MT;Helena;Billings;974,989;147,046;MT (UTC-07); ;YES
28 | NEBRASKA;NE;Lincoln;Omaha;1,796,619;77,358;CST (UTC-6);MT (UTC-07);YES
29 | NEVADA;NV;Carson City;Las Vegas;2,643,085;110,567;PT (UTC-8);MT (UTC-07);YES
30 | NEW HAMPSHIRE;NH;Concord;Machester;1,324,575;9,351;EST (UTC-5); ;YES
31 | NEW JERSEY;NJ;Trenton;Newark;8,707,739;8,722;EST (UTC-5); ;YES
32 | NEW MEXICO;NM;Santa Fe;Albuquerque;2,009,671;121,593;MT (UTC-07); ;YES
33 | NEW YORK;NY;Albany;New York;19,541,453;54,475;EST (UTC-5); ;YES
34 | NORTH CAROLINA;NC;Raleigh;Charlotte;9,380,884;53,821;EST (UTC-5); ;YES
35 | NORTH DAKOTA;ND;Bismarck;Fargo;646,844;70,704;CST (UTC-6);MT (UTC-07);YES
36 | OHIO;OH;Columbus;Columbus;11,542,645;44,828;EST (UTC-5); ;YES
37 | OKLAHOMA;OK;Oklahoma City;Oklahoma City;3,687,050;69,903;CST (UTC-6); ;YES
38 | OREGON;OR;Salem;Portland;3,825,657;98,386;PT (UTC-8);MT (UTC-07);YES
39 | PENNSYLVANIA;PA;Harrisburg;Philadelphia;12,604,767;46,058;EST (UTC-5); ;YES
40 | RHODE ISLAND;RI;Providence;Providence;1,053,209;1,545;EST (UTC-5); ;YES
41 | SOUTH CAROLINA;SC;Columbia;Columbia;4,561,242;32,007;EST (UTC-5); ;YES
42 | SOUTH DAKOTA;SD;Pierre;Sioux Falls;812,383;77,121;CST (UTC-6);MT (UTC-07);YES
43 | TENNESSEE;TN;Nashville;Memphis;6,296,254;42,146;CST (UTC-6);EST (UTC-5);YES
44 | TEXAS;TX;Austin;Houston;24,782,302;268,601;CST (UTC-6);MT (UTC-07);YES
45 | UTAH;UT;Salt Lake City;Salt Lake City;2,784,572;84,904;MT (UTC-07); ;YES
46 | VERMONT;VT;Montpelier;Burlington;621,760;9,615;EST (UTC-5); ;YES
47 | VIRGINIA;VA;Richmond;Virginia Beach;7,882,590;42,769;EST (UTC-5); ;YES
48 | WASHINGTON;WA;Olympia;Seattle;6,664,195;71,303;PT (UTC-8); ;YES
49 | WEST VIRGINIA;WV;Charleston;Charleston;1,819,777;24,231;EST (UTC-5); ;YES
50 | WISCONSIN;WI;Madison;Milwaukee;5,654,774;65,503;CST (UTC-6); ;YES
51 | WYOMING;WY;Cheyenne;Cheyenne;544,270;97,818;MT (UTC-07); ;YES
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/88th_noms_announcement.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/88th_noms_announcement.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/88th_reminder_list.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/88th_reminder_list.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/oscars_movies_checklist_2016.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/oscars_movies_checklist_2016.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/state.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/state.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/subscribe.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/subscribe.pdf
--------------------------------------------------------------------------------
/iText-start/iText6/src/main/resources/pdf/the_golden_gate_bridge.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText6/src/main/resources/pdf/the_golden_gate_bridge.pdf
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_barcodes_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_font_asian_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_forms_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_hyph_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_io_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_kernel_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_layout_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_pdfa_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__com_itextpdf_sign_7_0_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/iText-start/iText7/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/iText-start/iText7/iText7.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/iText-start/iText7/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | com.itext
8 | iText7
9 | 1.0-SNAPSHOT
10 |
11 |
12 |
13 |
14 |
15 | com.itextpdf
16 | kernel
17 | 7.0.3
18 |
19 |
20 |
21 |
22 | com.itextpdf
23 | io
24 | 7.0.3
25 |
26 |
27 |
28 |
29 | com.itextpdf
30 | layout
31 | 7.0.3
32 |
33 |
34 |
35 |
36 | com.itextpdf
37 | forms
38 | 7.0.3
39 |
40 |
41 |
42 |
43 | com.itextpdf
44 | pdfa
45 | 7.0.3
46 |
47 |
48 |
49 |
50 | com.itextpdf
51 | sign
52 | 7.0.3
53 |
54 |
55 |
56 |
57 | com.itextpdf
58 | barcodes
59 | 7.0.3
60 |
61 |
62 |
63 |
64 | com.itextpdf
65 | font-asian
66 | 7.0.3
67 |
68 |
69 |
70 |
71 | com.itextpdf
72 | hyph
73 | 7.0.3
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/java/C07E01_QuickBrownFox_PDFUA.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/24.
3 | */
4 | import com.itextpdf.io.font.PdfEncodings;
5 | import com.itextpdf.io.image.ImageDataFactory;
6 | import com.itextpdf.kernel.font.PdfFont;
7 | import com.itextpdf.kernel.font.PdfFontFactory;
8 | import com.itextpdf.kernel.pdf.PdfDocument;
9 | import com.itextpdf.kernel.pdf.PdfDocumentInfo;
10 | import com.itextpdf.kernel.pdf.PdfString;
11 | import com.itextpdf.kernel.pdf.PdfViewerPreferences;
12 | import com.itextpdf.kernel.pdf.PdfWriter;
13 | import com.itextpdf.kernel.pdf.WriterProperties;
14 | import com.itextpdf.layout.Document;
15 | import com.itextpdf.layout.element.Image;
16 | import com.itextpdf.layout.element.Paragraph;
17 | import com.itextpdf.layout.element.Text;
18 |
19 | import java.io.File;
20 | import java.io.IOException;
21 |
22 | public class C07E01_QuickBrownFox_PDFUA {
23 | public static final String DOG = "src/main/resources/img/dog.bmp";
24 | public static final String FOX = "src/main/resources/img/fox.bmp";
25 | public static final String FONT = "src/main/resources/font/FreeSans.ttf";
26 |
27 | public static final String DEST = "results/chapter07/quick_brown_fox_PDFUA.pdf";
28 |
29 | public static void main(String args[]) throws IOException {
30 | File file = new File(DEST);
31 | file.getParentFile().mkdirs();
32 | new C07E01_QuickBrownFox_PDFUA().createPdf(DEST);
33 | }
34 |
35 | public void createPdf(String dest) throws IOException {
36 | PdfDocument pdf = new PdfDocument(new PdfWriter(dest, new WriterProperties().addXmpMetadata()));
37 | Document document = new Document(pdf);
38 |
39 | //Setting some required parameters
40 | pdf.setTagged();
41 | pdf.getCatalog().setLang(new PdfString("en-US"));
42 | pdf.getCatalog().setViewerPreferences(
43 | new PdfViewerPreferences().setDisplayDocTitle(true));
44 | PdfDocumentInfo info = pdf.getDocumentInfo();
45 | info.setTitle("iText7 PDF/UA example");
46 |
47 | //Fonts need to be embedded
48 | PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, true);
49 | Paragraph p = new Paragraph();
50 | p.setFont(font);
51 | p.add(new Text("The quick brown "));
52 | Image foxImage = new Image(ImageDataFactory.create(FOX));
53 | //PDF/UA: Set alt text
54 | foxImage.getAccessibilityProperties().setAlternateDescription("Fox");
55 | p.add(foxImage);
56 | p.add(" jumps over the lazy ");
57 | Image dogImage = new Image(ImageDataFactory.create(DOG));
58 | //PDF/UA: Set alt text
59 | dogImage.getAccessibilityProperties().setAlternateDescription("Dog");
60 | p.add(dogImage);
61 |
62 | document.add(p);
63 | document.close();
64 | }
65 | }
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/java/C07E02_QuickBrownFox_PDFA_1a.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/24.
3 | */
4 | import com.itextpdf.io.font.PdfEncodings;
5 | import com.itextpdf.io.image.ImageDataFactory;
6 | import com.itextpdf.kernel.font.PdfFont;
7 | import com.itextpdf.kernel.font.PdfFontFactory;
8 | import com.itextpdf.kernel.pdf.PdfAConformanceLevel;
9 | import com.itextpdf.kernel.pdf.PdfOutputIntent;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 | import com.itextpdf.layout.Document;
12 | import com.itextpdf.layout.element.Image;
13 | import com.itextpdf.layout.element.Paragraph;
14 | import com.itextpdf.layout.element.Text;
15 | import com.itextpdf.pdfa.PdfADocument;
16 |
17 | import java.io.File;
18 | import java.io.FileInputStream;
19 | import java.io.IOException;
20 |
21 |
22 | public class C07E02_QuickBrownFox_PDFA_1a {
23 | public static final String DOG = "src/main/resources/img/dog.bmp";
24 | public static final String FOX = "src/main/resources/img/fox.bmp";
25 | public static final String FONT = "src/main/resources/font/FreeSans.ttf";
26 | public static final String INTENT = "src/main/resources/color/sRGB_CS_profile.icm";
27 |
28 | public static final String DEST = "results/chapter07/quick_brown_fox_PDFA-1a.pdf";
29 |
30 | public static void main(String args[]) throws IOException {
31 | File file = new File(DEST);
32 | file.getParentFile().mkdirs();
33 | new C07E02_QuickBrownFox_PDFA_1a().createPdf(DEST);
34 | }
35 |
36 | public void createPdf(String dest) throws IOException {
37 | //Initialize PDFA document with output intent
38 | PdfADocument pdf = new PdfADocument(new PdfWriter(dest),
39 | PdfAConformanceLevel.PDF_A_1A,
40 | new PdfOutputIntent("Custom", "", "http://www.color.org",
41 | "sRGB IEC61966-2.1", new FileInputStream(INTENT)));
42 | Document document = new Document(pdf);
43 |
44 | //Setting some required parameters
45 | pdf.setTagged();
46 |
47 | //Fonts need to be embedded
48 | PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, true);
49 | Paragraph p = new Paragraph();
50 | p.setFont(font);
51 | p.add(new Text("The quick brown "));
52 | Image foxImage = new Image(ImageDataFactory.create(FOX));
53 | //Set alt text
54 | foxImage.getAccessibilityProperties().setAlternateDescription("Fox");
55 | p.add(foxImage);
56 | p.add(" jumps over the lazy ");
57 | Image dogImage = new Image(ImageDataFactory.create(DOG));
58 | //Set alt text
59 | dogImage.getAccessibilityProperties().setAlternateDescription("Dog");
60 | p.add(dogImage);
61 |
62 | document.add(p);
63 | document.close();
64 | }
65 | }
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/java/C07E02_QuickBrownFox_PDFA_1b.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/24.
3 | */
4 | import com.itextpdf.io.font.PdfEncodings;
5 | import com.itextpdf.io.image.ImageDataFactory;
6 | import com.itextpdf.kernel.font.PdfFont;
7 | import com.itextpdf.kernel.font.PdfFontFactory;
8 | import com.itextpdf.kernel.pdf.PdfAConformanceLevel;
9 | import com.itextpdf.kernel.pdf.PdfOutputIntent;
10 | import com.itextpdf.kernel.pdf.PdfWriter;
11 | import com.itextpdf.layout.Document;
12 | import com.itextpdf.layout.element.Image;
13 | import com.itextpdf.layout.element.Paragraph;
14 | import com.itextpdf.layout.element.Text;
15 | import com.itextpdf.pdfa.PdfADocument;
16 |
17 | import java.io.File;
18 | import java.io.FileInputStream;
19 | import java.io.IOException;
20 |
21 |
22 | public class C07E02_QuickBrownFox_PDFA_1b {
23 | public static final String DOG = "src/main/resources/img/dog.bmp";
24 | public static final String FOX = "src/main/resources/img/fox.bmp";
25 | public static final String FONT = "src/main/resources/font/FreeSans.ttf";
26 | public static final String INTENT = "src/main/resources/color/sRGB_CS_profile.icm";
27 |
28 | public static final String DEST = "results/chapter07/quick_brown_fox_PDFA-1b.pdf";
29 |
30 | public static void main(String args[]) throws IOException {
31 | File file = new File(DEST);
32 | file.getParentFile().mkdirs();
33 | new C07E02_QuickBrownFox_PDFA_1b().createPdf(DEST);
34 | }
35 |
36 | public void createPdf(String dest) throws IOException {
37 | //Initialize PDFA document with output intent
38 | PdfADocument pdf = new PdfADocument(new PdfWriter(dest),
39 | PdfAConformanceLevel.PDF_A_1B,
40 | new PdfOutputIntent("Custom", "", "http://www.color.org",
41 | "sRGB IEC61966-2.1", new FileInputStream(INTENT)));
42 | Document document = new Document(pdf);
43 |
44 | //Fonts need to be embedded
45 | PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, true);
46 | Paragraph p = new Paragraph();
47 | p.setFont(font);
48 | p.add(new Text("The quick brown "));
49 | Image foxImage = new Image(ImageDataFactory.create(FOX));
50 | p.add(foxImage);
51 | p.add(" jumps over the lazy ");
52 | Image dogImage = new Image(ImageDataFactory.create(DOG));
53 | p.add(dogImage);
54 |
55 | document.add(p);
56 | document.close();
57 | }
58 | }
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/java/C07E04_MergePDFADocuments.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by ASUS on 2017/12/24.
3 | */
4 | import com.itextpdf.kernel.pdf.*;
5 | import com.itextpdf.kernel.utils.PdfMerger;
6 | import com.itextpdf.pdfa.PdfADocument;
7 |
8 | import java.io.File;
9 | import java.io.FileInputStream;
10 | import java.io.IOException;
11 |
12 |
13 | public class C07E04_MergePDFADocuments {
14 | public static final String INTENT = "src/main/resources/color/sRGB_CS_profile.icm";
15 |
16 | public static final String SRC1 = "src/main/resources/pdf/quick_brown_fox_PDFA-1a.pdf";
17 | public static final String SRC2 = "src/main/resources/pdf/united_states_PDFA-1a.pdf";
18 | public static final String DEST = "results/chapter07/merged_PDFA-1a_documents.pdf";
19 |
20 | public static void main(String args[]) throws IOException {
21 | File file = new File(DEST);
22 | file.getParentFile().mkdirs();
23 | new C07E04_MergePDFADocuments().createPdf(DEST);
24 | }
25 |
26 | public void createPdf(String dest) throws IOException {
27 | //Initialize PDFA document with output intent
28 | PdfADocument pdf = new PdfADocument(new PdfWriter(dest),
29 | PdfAConformanceLevel.PDF_A_1A,
30 | new PdfOutputIntent("Custom", "", "http://www.color.org",
31 | "sRGB IEC61966-2.1", new FileInputStream(INTENT)));
32 |
33 | //Setting some required parameters
34 | pdf.setTagged();
35 | pdf.getCatalog().setLang(new PdfString("en-US"));
36 | pdf.getCatalog().setViewerPreferences(
37 | new PdfViewerPreferences().setDisplayDocTitle(true));
38 | PdfDocumentInfo info = pdf.getDocumentInfo();
39 | info.setTitle("iText7 PDF/A-1a example");
40 |
41 | //Create PdfMerger instance
42 | PdfMerger merger = new PdfMerger(pdf);
43 | //Add pages from the first document
44 | PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));
45 | merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());
46 | //Add pages from the second pdf document
47 | PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));
48 | merger.merge(secondSourcePdf, 1, secondSourcePdf.getNumberOfPages());
49 |
50 | //Close the documents
51 | firstSourcePdf.close();
52 | secondSourcePdf.close();
53 | pdf.close();
54 | }
55 | }
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/color/sRGB_CS_profile.icm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/color/sRGB_CS_profile.icm
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/data/united_states.csv:
--------------------------------------------------------------------------------
1 | name;abbr;capital;most populous city;population;square miles;time zone 1;time zone 2;dst
2 | ALABAMA;AL;Montgomery;Birmingham;4,708,708;52,423;CST (UTC-6);EST (UTC-5);YES
3 | ALASKA;AK;Juneau;Anchorage;698,473;656,425;AKST (UTC-09) ;HST (UTC-10) ;YES
4 | ARIZONA;AZ;Phoenix;Phoenix;6,595,778;114,006;MT (UTC-07); ;NO
5 | ARKANSAS;AR;Little Rock;Little Rock;2,889,450;53,182;CST (UTC-6); ;YES
6 | CALIFORNIA;CA;Sacramento;Los Angeles;36,961,664;163,707;PT (UTC-8); ;YES
7 | COLORADO;CO;Denver;Denver;5,024,748;104,100;MT (UTC-07); ;YES
8 | CONNECTICUT;CT;Hartford;Bridgeport;3,518,288;5,544;EST (UTC-5); ;YES
9 | DELAWARE;DE;Dover;Wilmington;885,122;1,954;EST (UTC-5); ;YES
10 | FLORIDA;FL;Tallahassee;Jacksonville;18,537,969;65,758;EST (UTC-5);CST (UTC-6);YES
11 | GEORGIA;GA;Atlanta;Atlanta;9,829,211;59,441;EST (UTC-5); ;YES
12 | HAWAII;HI;Honolulu;Honolulu;1,295,178;10,932;HST (UTC-10) ; ;NO
13 | IDAHO;ID;Boise;Boise;1,545,801;83,574;MT (UTC-07);PT (UTC-8);YES
14 | ILLINOIS;IL;Springfield;Chicago;12,910,409;57,918;CST (UTC-6); ;YES
15 | INDIANA;IN;Indianapolis;Indianapolis;6,423,113;36,420;EST (UTC-5);CST (UTC-6);YES
16 | IOWA;IA;Des Moines;Des Moines;3,007,856;56,276;CST (UTC-6); ;YES
17 | KANSAS;KS;Topeka;Wichita;2,818,747;82,282;CST (UTC-6);MT (UTC-07);YES
18 | KENTUCKY;KY;Frankfort;Louisville;4,314,113;40,411;EST (UTC-5);CST (UTC-6);YES
19 | LOUISIANA;LA;Baton Rouge;New Orleans;4,492,076;51,843;CST (UTC-6); ;YES
20 | MAINE;ME;Augusta;Portland;1,318,301;35,387;EST (UTC-5); ;YES
21 | MARYLAND;MD;Annapolis;Baltimore;5,699,478;12,407;EST (UTC-5); ;YES
22 | MASSACHUSETTS;MA;Boston;Boston;6,593,587;10,555;EST (UTC-5); ;YES
23 | MICHIGAN;MI;Lansing;Detroit;9,969,727;96,810;EST (UTC-5);CST (UTC-6);YES
24 | MINNESOTA;MN;Saint Paul;Minneapolis;5,266,214;86,943;CST (UTC-6); ;YES
25 | MISSISSIPPI;MS;Jackson;Jackson;2,951,996;48,434;CST (UTC-6); ;YES
26 | MISSOURI;MO;Jefferson City;Kansas City;5,987,580;69,709;CST (UTC-6); ;YES
27 | MONTANA;MT;Helena;Billings;974,989;147,046;MT (UTC-07); ;YES
28 | NEBRASKA;NE;Lincoln;Omaha;1,796,619;77,358;CST (UTC-6);MT (UTC-07);YES
29 | NEVADA;NV;Carson City;Las Vegas;2,643,085;110,567;PT (UTC-8);MT (UTC-07);YES
30 | NEW HAMPSHIRE;NH;Concord;Machester;1,324,575;9,351;EST (UTC-5); ;YES
31 | NEW JERSEY;NJ;Trenton;Newark;8,707,739;8,722;EST (UTC-5); ;YES
32 | NEW MEXICO;NM;Santa Fe;Albuquerque;2,009,671;121,593;MT (UTC-07); ;YES
33 | NEW YORK;NY;Albany;New York;19,541,453;54,475;EST (UTC-5); ;YES
34 | NORTH CAROLINA;NC;Raleigh;Charlotte;9,380,884;53,821;EST (UTC-5); ;YES
35 | NORTH DAKOTA;ND;Bismarck;Fargo;646,844;70,704;CST (UTC-6);MT (UTC-07);YES
36 | OHIO;OH;Columbus;Columbus;11,542,645;44,828;EST (UTC-5); ;YES
37 | OKLAHOMA;OK;Oklahoma City;Oklahoma City;3,687,050;69,903;CST (UTC-6); ;YES
38 | OREGON;OR;Salem;Portland;3,825,657;98,386;PT (UTC-8);MT (UTC-07);YES
39 | PENNSYLVANIA;PA;Harrisburg;Philadelphia;12,604,767;46,058;EST (UTC-5); ;YES
40 | RHODE ISLAND;RI;Providence;Providence;1,053,209;1,545;EST (UTC-5); ;YES
41 | SOUTH CAROLINA;SC;Columbia;Columbia;4,561,242;32,007;EST (UTC-5); ;YES
42 | SOUTH DAKOTA;SD;Pierre;Sioux Falls;812,383;77,121;CST (UTC-6);MT (UTC-07);YES
43 | TENNESSEE;TN;Nashville;Memphis;6,296,254;42,146;CST (UTC-6);EST (UTC-5);YES
44 | TEXAS;TX;Austin;Houston;24,782,302;268,601;CST (UTC-6);MT (UTC-07);YES
45 | UTAH;UT;Salt Lake City;Salt Lake City;2,784,572;84,904;MT (UTC-07); ;YES
46 | VERMONT;VT;Montpelier;Burlington;621,760;9,615;EST (UTC-5); ;YES
47 | VIRGINIA;VA;Richmond;Virginia Beach;7,882,590;42,769;EST (UTC-5); ;YES
48 | WASHINGTON;WA;Olympia;Seattle;6,664,195;71,303;PT (UTC-8); ;YES
49 | WEST VIRGINIA;WV;Charleston;Charleston;1,819,777;24,231;EST (UTC-5); ;YES
50 | WISCONSIN;WI;Madison;Milwaukee;5,654,774;65,503;CST (UTC-6); ;YES
51 | WYOMING;WY;Cheyenne;Cheyenne;544,270;97,818;MT (UTC-07); ;YES
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/font/FreeSans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/font/FreeSans.ttf
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/font/FreeSansBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/font/FreeSansBold.ttf
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/img/dog.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/img/dog.bmp
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/img/fox.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/img/fox.bmp
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/pdf/quick_brown_fox_PDFA-1a.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/pdf/quick_brown_fox_PDFA-1a.pdf
--------------------------------------------------------------------------------
/iText-start/iText7/src/main/resources/pdf/united_states_PDFA-1a.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CuteXiaoKe/iText7-examples/49e8e9759a6776fd80f08a82d7842fd1b3e15374/iText-start/iText7/src/main/resources/pdf/united_states_PDFA-1a.pdf
--------------------------------------------------------------------------------