ITEXT 把表格定位在固定位置

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

问题场景

用itext生成pdf时,需要把某部分内容固定在一个位置,比如盖章位置被固定在每页最下方。

环境

IDEA
jdk1.8
导入的jar包:itext-pdfa-5.5.6.jar、itext-xtra-5.5.6.jar、itext-5.5.6.jar、itext-asian.jar

code

  1. import com.itextpdf.text.*;
  2. import com.itextpdf.text.pdf.*;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. /**
  6. * @Author: youxingyang
  7. * @Date: 2019/5/16
  8. * @Description:
  9. */
  10. public class TableStable {
  11. public static void main(String[] args) {
  12. Document document = new Document(PageSize.A4, 25, 25, 20, 38);
  13. // left right top bottom
  14. try {
  15. PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));
  16. document.open();
  17. // start
  18. BaseFont baseFont1 = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
  19. Font songti09 = new Font(baseFont1, 9f);
  20. String[] arrs = {"本检测仅对样品本身负责。",
  21. "若对检测结果有疑问,请在收到xxxxxxx后00个工作日内与我们联系!",
  22. "地址:走你。",
  23. "电话:你猜啊。"};
  24. PdfPTable table = new PdfPTable(1);
  25. com.itextpdf.text.List list4 = new com.itextpdf.text.List(true, arrs.length);
  26. list4.setAutoindent(true);
  27. list4.setNumbered(true);
  28. for (int index = 0; index < arrs.length; index++) {
  29. Paragraph elements = new Paragraph();
  30. Chunk chunk1 = new Chunk(String.valueOf((index + 1)) + ".", songti09);
  31. elements.add(chunk1);
  32. char[] chars = arrs[index].toCharArray();
  33. for (int i = 0; i < chars.length; i++) {
  34. String ss = chars[i] + "";
  35. Chunk p0 = new Chunk(ss, songti09);
  36. elements.add(p0);
  37. }
  38. Chunk chunk = new Chunk("\n");
  39. elements.add(chunk);
  40. PdfPCell cell4 = new PdfPCell();
  41. cell4.addElement(elements);
  42. table.addCell(cell4);
  43. }
  44. PdfContentByte canvas = writer.getDirectContent();
  45. table.setTotalWidth(500f);
  46. /**
  47. * rowStart 0 起始行
  48. * rowEnd -1 表示全部行
  49. * xPos 表格横坐标- 从左向右开始计算
  50. * yPos 表格纵坐标- 从下向上开始计算
  51. * canvas 画布
  52. */
  53. table.writeSelectedRows(0, -1, 60, 200, canvas);
  54. document.close();
  55. writer.close();
  56. } catch (DocumentException | IOException e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. }

效果

相关文章