Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用spring boot将生成的PDF文件保存到MySQL数据库?_Java_Spring Boot - Fatal编程技术网

Java 如何使用spring boot将生成的PDF文件保存到MySQL数据库?

Java 如何使用spring boot将生成的PDF文件保存到MySQL数据库?,java,spring-boot,Java,Spring Boot,我有一个使用iText库生成PDF文件的函数。我的想法是将文档转换为字节数组,但我总是得到一个错误:com.itextpdf.text。Document@2805d0d4. 找不到该文件 以下是我的PDF生成功能: @Override public Boolean createdPDF() throws Exception { Document document = new Document(); PdfWriter.getInstance(doc

我有一个使用iText库生成PDF文件的函数。我的想法是将文档转换为字节数组,但我总是得到一个错误:
com.itextpdf.text。Document@2805d0d4. 找不到该文件

以下是我的PDF生成功能:

    @Override
    public Boolean createdPDF() throws Exception {
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream("iTextHelloWorld.pdf"));

        document.open();
        Font font = FontFactory.getFont(FontFactory.COURIER, 16, BaseColor.BLACK);
        Chunk chunk = new Chunk("Hello World", font);

        document.add(chunk);
        document.close();
        getByteArrayFromFile(document);

        return true;
    }
下面是我的转换字节数组from file函数:

    private byte[] getByteArrayFromFile(Document handledDocument) throws IOException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         InputStream in = new FileInputStream(String.valueOf(handledDocument));
         byte[] buffer = new byte[500];

        int read = -1;
        while ((read = in.read(buffer)) > 0) {
            baos.write(buffer, 0, read);
        }
        in.close();

        Ticket newTicket = new Ticket();
        newTicket.setFileName("example");
        newTicket.setData(baos.toByteArray());
        ticketRepository.save(newTicket);

        return baos.toByteArray();
    }
票证实体:

    @Data
    @Entity
    public class Ticket {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String fileName;

    @Lob
    private byte[] data;

    @NotNull
    @JsonIgnore
    @Column(updatable = false)
    private LocalDateTime createAt;

    @NotNull
    @JsonIgnore
    private LocalDateTime updatedAt;
}

以下是如何从PdfDocument获取字节[]的示例:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
Documentdocument = new Document();

PdfWriter pdfWriter = PdfWriter.getInstance(document, baos);

document.open();
Font font = FontFactory.getFont(FontFactory.COURIER, 16, BaseColor.BLACK);
Chunk chunk = new Chunk("Hello World", font);

document.add(chunk);
document.close(); 

pdfWriter.flush();

byte[] pdfAsBytes = baos.toByteArray();

以下是如何从PdfDocument获取字节[]的示例:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
Documentdocument = new Document();

PdfWriter pdfWriter = PdfWriter.getInstance(document, baos);

document.open();
Font font = FontFactory.getFont(FontFactory.COURIER, 16, BaseColor.BLACK);
Chunk chunk = new Chunk("Hello World", font);

document.add(chunk);
document.close(); 

pdfWriter.flush();

byte[] pdfAsBytes = baos.toByteArray();