itext7学习笔记——第1章实践&example

x33g5p2x  于2021-12-28 转载在 其他  
字(5.9k)|赞(0)|评价(0)|浏览(536)

例子1:Hello World

最简单的例子,就是向pdf中插入Hello World。编辑PDF的通用顺序:

Created with Raphaël 2.1.0Start创建PdfWriter创建PdfDocument创建DocumentEnd

代码如下:

  1. import com.itextpdf.kernel.pdf.PdfDocument;
  2. import com.itextpdf.kernel.pdf.PdfWriter;
  3. import com.itextpdf.layout.Document;
  4. import com.itextpdf.layout.element.Paragraph;
  5. import java.io.File;
  6. import java.io.IOException;
  7. /** * Simple Hello World example. */
  8. public class C01E01_HelloWorld {
  9. public static final String DEST = "results/chapter01/hello_world.pdf";
  10. public static void main(String args[]) throws IOException {
  11. File file = new File(DEST);
  12. file.getParentFile().mkdirs(); //创建目录
  13. new C01E01_HelloWorld().createPdf(DEST); //生成文件
  14. }
  15. public void createPdf(String dest) throws IOException {
  16. //Initialize PDF writer
  17. PdfWriter writer = new PdfWriter(dest);
  18. //Initialize PDF document
  19. PdfDocument pdf = new PdfDocument(writer);
  20. // Initialize document
  21. Document document = new Document(pdf);
  22. //Add paragraph to the document
  23. document.add(new Paragraph("Hello World!"));
  24. //Close document
  25. document.close();
  26. }

例子2:插入列表

接下来几个例子就直接贴代码,如果不清楚的可以查看之前的第1章内容:

  1. import com.itextpdf.io.font.FontConstants;
  2. import com.itextpdf.kernel.font.PdfFont;
  3. import com.itextpdf.kernel.font.PdfFontFactory;
  4. import com.itextpdf.kernel.pdf.PdfDocument;
  5. import com.itextpdf.kernel.pdf.PdfWriter;
  6. import com.itextpdf.layout.Document;
  7. import com.itextpdf.layout.element.List;
  8. import com.itextpdf.layout.element.ListItem;
  9. import com.itextpdf.layout.element.Paragraph;
  10. import java.io.File;
  11. import java.io.IOException;
  12. /** * Simple List example. */
  13. public class C01E02_RickAstley {
  14. public static final String DEST = "results/chapter01/rick_astley.pdf";
  15. public static void main(String args[]) throws IOException {
  16. File file = new File(DEST);
  17. file.getParentFile().mkdirs(); //创建目录
  18. new C01E02_RickAstley().createPdf(DEST); //生成文件
  19. }
  20. public void createPdf(String dest) throws IOException {
  21. //Initialize PDF writer
  22. PdfWriter writer = new PdfWriter(dest);
  23. //Initialize PDF document
  24. PdfDocument pdf = new PdfDocument(writer);
  25. // Initialize document
  26. Document document = new Document(pdf);
  27. // Create a PdfFont
  28. PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
  29. // Add a Paragraph
  30. document.add(new Paragraph("iText is:").setFont(font));
  31. // Create a List
  32. List list = new List()
  33. .setSymbolIndent(12)
  34. .setListSymbol("\u2022")
  35. .setFont(font);
  36. // Add ListItem objects
  37. list.add(new ListItem("Never gonna give you up"))
  38. .add(new ListItem("Never gonna let you down"))
  39. .add(new ListItem("Never gonna run around and desert you"))
  40. .add(new ListItem("Never gonna make you cry"))
  41. .add(new ListItem("Never gonna say goodbye"))
  42. .add(new ListItem("Never gonna tell a lie and hurt you"));
  43. // Add the list
  44. document.add(list);
  45. //Close document
  46. document.close();
  47. }

例子3:插入图片

  1. import com.itextpdf.io.image.ImageDataFactory;
  2. import com.itextpdf.kernel.pdf.PdfDocument;
  3. import com.itextpdf.kernel.pdf.PdfWriter;
  4. import com.itextpdf.layout.Document;
  5. import com.itextpdf.layout.element.Image;
  6. import com.itextpdf.layout.element.Paragraph;
  7. import java.io.File;
  8. import java.io.IOException;
  9. /** * Simple image example. */
  10. public class C01E03_QuickBrownFox {
  11. public static final String DOG = "src/main/resources/img/dog.bmp";
  12. public static final String FOX = "src/main/resources/img/fox.bmp";
  13. public static final String DEST = "results/chapter01/quick_brown_fox.pdf";
  14. public static void main(String args[]) throws IOException {
  15. File file = new File(DEST);
  16. file.getParentFile().mkdirs();
  17. new C01E03_QuickBrownFox().createPdf(DEST);
  18. }
  19. public void createPdf(String dest) throws IOException {
  20. //Initialize PDF writer
  21. PdfWriter writer = new PdfWriter(dest);
  22. //Initialize PDF document
  23. PdfDocument pdf = new PdfDocument(writer);
  24. // Initialize document
  25. Document document = new Document(pdf);
  26. // Compose Paragraph
  27. Image fox = new Image(ImageDataFactory.create(FOX));
  28. Image dog = new Image(ImageDataFactory.create(DOG));
  29. Paragraph p = new Paragraph("The quick brown ")
  30. .add(fox)
  31. .add(" jumps over the lazy ")
  32. .add(dog);
  33. // Add Paragraph to document
  34. document.add(p);
  35. //Close document
  36. document.close();
  37. }
  38. }

例子4:根据CSV生成表格

  1. /** * Created by CuteKe on 2017/7/10. */
  2. import com.itextpdf.io.font.FontConstants;
  3. import com.itextpdf.kernel.font.PdfFont;
  4. import com.itextpdf.kernel.font.PdfFontFactory;
  5. import com.itextpdf.kernel.geom.PageSize;
  6. import com.itextpdf.kernel.pdf.PdfDocument;
  7. import com.itextpdf.kernel.pdf.PdfWriter;
  8. import com.itextpdf.layout.Document;
  9. import com.itextpdf.layout.element.Cell;
  10. import com.itextpdf.layout.element.Paragraph;
  11. import com.itextpdf.layout.element.Table;
  12. import java.io.BufferedReader;
  13. import java.io.File;
  14. import java.io.FileReader;
  15. import java.io.IOException;
  16. import java.util.StringTokenizer;
  17. /** * Simple table example. */
  18. public class C01E04_UnitedStates {
  19. public static final String DATA = "src/main/resources/data/united_states.csv";
  20. public static final String DEST = "results/chapter01/united_states.pdf";
  21. public static void main(String args[]) throws IOException {
  22. File file = new File(DEST);
  23. file.getParentFile().mkdirs();
  24. new C01E04_UnitedStates().createPdf(DEST);
  25. }
  26. public void createPdf(String dest) throws IOException {
  27. //Initialize PDF writer
  28. PdfWriter writer = new PdfWriter(dest);
  29. //Initialize PDF document
  30. PdfDocument pdf = new PdfDocument(writer);
  31. // Initialize document
  32. Document document = new Document(pdf, PageSize.A4.rotate());
  33. document.setMargins(20, 20, 20, 20);
  34. PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA);
  35. PdfFont bold = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
  36. Table table = new Table(new float[]{4, 1, 3, 4, 3, 3, 3, 3, 1});
  37. table.setWidthPercent(100);
  38. BufferedReader br = new BufferedReader(new FileReader(DATA));
  39. String line = br.readLine();
  40. process(table, line, bold, true);
  41. while ((line = br.readLine()) != null) {
  42. process(table, line, font, false);
  43. }
  44. br.close();
  45. document.add(table);
  46. //Close document
  47. document.close();
  48. }
  49. public void process(Table table, String line, PdfFont font, boolean isHeader) {
  50. StringTokenizer tokenizer = new StringTokenizer(line, ";");
  51. while (tokenizer.hasMoreTokens()) {
  52. if (isHeader) {
  53. table.addHeaderCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
  54. } else {
  55. table.addCell(new Cell().add(new Paragraph(tokenizer.nextToken()).setFont(font)));
  56. }
  57. }
  58. }
  59. }

Example代码下载

本章代码可在如下地址下载(IDEA工程):iText7——第一章源代码工程

相关文章