Java 如何使用spring boot将生成的PDF文件保存到MySQL数据库?
我有一个使用iText库生成PDF文件的函数。我的想法是将文档转换为字节数组,但我总是得到一个错误: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
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();