当前位置: 主页 > JAVA语言

java填写pdf表单-按键精灵 表单填写

发布时间:2023-02-13 16:15   浏览次数:次   作者:佚名

i文本介绍和描述

因为项目需要生成PDF文件java填写pdf表单,我去找了一个可以生成PDF的Java工具java填写pdf表单,看到iText可以说好评如潮。

如果您想通过Java操作PDF文件,那么iText绝对是您的首选。

引入依赖项

此处使用 iText5

        
            com.itextpdf
            itextpdf
            5.5.10
        
        
            com.itextpdf
            itext-asian
            5.2.0
        

使用步骤简介

快速开始使用 iText 总共需要 5 个步骤:

创建文档实例文档

获取 PdfWriter 实例(您需要指定文档实例和 pdf 生成的磁盘路径)。

打开文档

添加段落内容关闭操作文档

实例(必须在操作完成后执行文档关闭操作)。

创建实用程序类

public class PdfUtil {
    // 标准字体
    public static Font NORMALFONT;
    // 加粗字体
    public static Font BOLDFONT;
    //固定高
    public static float fixedHeight = 27f;

java填写pdf表单_按键精灵 表单填写_自动填写网页表单

//间距 public static int spacing = 5; static { try { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); NORMALFONT = new Font(bfChinese, 10, Font.NORMAL); BOLDFONT = new Font(bfChinese, 14, Font.BOLD); } catch (Exception e) { e.printStackTrace(); } } public static Document createDocument() { //生成pdf Document document = new Document(); // 页面大小 Rectangle rectangle = new Rectangle(PageSize.A4); // 页面背景颜色 rectangle.setBackgroundColor(BaseColor.WHITE); document.setPageSize(rectangle); // 页边距 左,右,上,下 document.setMargins(20, 20, 20, 20); return document; } /** * @param text 段落内容 * @return

按键精灵 表单填写_自动填写网页表单_java填写pdf表单

*/
public static Paragraph createParagraph(String text, Font font) { Paragraph elements = new Paragraph(text, font); elements.setSpacingBefore(5); elements.setSpacingAfter(5); elements.setSpacingAfter(spacing); return elements; } public static Font createFont(int fontNumber, int fontSize, BaseColor fontColor) { //中文字体 ----不然中文会乱码 BaseFont bf = null; try { bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); return new Font(bf, fontNumber, fontSize, fontColor); } catch (Exception e) { e.printStackTrace(); } return new Font(bf, Font.DEFAULTSIZE, Font.NORMAL, BaseColor.BLACK); } /** * 隐藏表格边框线 * * @param cell 单元格 */ public static void disableBorderSide(PdfPCell cell) { if (cell != null) { cell.disableBorderSide(1); cell.disableBorderSide(2);

自动填写网页表单_按键精灵 表单填写_java填写pdf表单

cell.disableBorderSide(4); cell.disableBorderSide(8); } } /** * 创建居中得单元格 * * @return */ public static PdfPCell createCenterPdfPCell() { PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setFixedHeight(fixedHeight); return cell; } /** * 创建指定文字得单元格 * * @param text * @return */ public static PdfPCell createCenterPdfPCell(String text, int rowSpan, int colSpan, Font font) { PdfPCell cell = new PdfPCell(new Paragraph(text, font)); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setFixedHeight(fixedHeight); cell.setRowspan(rowSpan);

java填写pdf表单_自动填写网页表单_按键精灵 表单填写

cell.setColspan(colSpan); return cell; } /** * @param len 表格列数 * @return */ public static PdfPTable createPdfPTable(int len) { PdfPTable pdfPTable = new PdfPTable(len); pdfPTable.setSpacingBefore(5); pdfPTable.setHorizontalAlignment(Element.ALIGN_CENTER); return pdfPTable; } }

创建用于测试的控制器

/**
 * @author Wang Guolong
 * @version 1.0
 * @date 2020/6/28 3:17 下午
 */
@RestController
@RequestMapping("/pdf")
public class PdfController {
    @RequestMapping("/generate")
    public Response generatePDF(HttpServletResponse response) throws Exception {
        String filename = "测试pdf";
        // 设置下载格式为pdf
        response.setContentType("application/x-download");

按键精灵 表单填写_自动填写网页表单_java填写pdf表单

response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8") + ".pdf"); OutputStream os = new BufferedOutputStream(response.getOutputStream()); // 1. Document document = new Document(); Document document = PdfUtil.createDocument(); // 2. 获取writer PdfWriter.getInstance(document, os); // 3. open() document.open(); //设置字体 Font blackFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK); Font blueFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLUE); Font bigFont = PdfUtil.createFont(14, Font.NORMAL, BaseColor.BLACK); Font littleFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK); Paragraph title = PdfUtil.createParagraph("测试pdf", bigFont); title.setAlignment(Element.ALIGN_CENTER); // 4. 添加段落内容 document.add(title); // 5. close() document.close(); os.close(); return new Response().setContent("success"); } }

运行结果

下载页面:

在这里插入图片描述

下载的文件效果:

在这里插入图片描述