I need to convert iTextPDF Document file to byte[] after it's created in memory. I have already tested that I've no problem with creating PDF properly. The problem is how to convert it to byte array to store in DB.
Here's my code:
Document generatedDocument = reportService.generateRequestForm(scdUser, jsonObject, 0, null); reportService.generateRequestForm(scdUser, jsonObject, 0, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter pdfWriter = PdfWriter.getInstance(generatedDocument, baos); generatedDocument.open(); document.setDocument(baos.toByteArray()); // stores as blob I got value of null at database blob column.
Here's my Document domain object:
Document Domain Object
@Entity @Table(name = "document") public class Document implements java.io.Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "document_id", nullable = false) private int documentId; @Column(name = "document_name", nullable = false, length = 65535) private String documentName; @Column(name = "document_type", nullable = false) private int documentType; @Temporal(TemporalType.TIMESTAMP) @Column(name = "upload_date", nullable = false, length = 19) private Date uploadDate = new Date(); @Column(name = "document", nullable = false) private byte[] document; // BLOB COLUMN @Column(name = "document_size", nullable = false) private long documentSize; @Column(name = "title", nullable = true, insertable = true, updatable = true, length = 65535, precision = 0) private String title; @Column(name = "tag", nullable = true, insertable = true, updatable = true, length = 65535, precision = 0) private String tag; @Column(name = "description", nullable = true, insertable = true, updatable = true, length = 65535, precision = 0) private String description; @Column(name = "shared", nullable = false, insertable = true, updatable = true, length = 1, precision = 0) private boolean shared = false; @Column(name = "status", nullable = false) private int status = DocumentStatus.READY.getStatus(); public int getDocumentId() { return this.documentId; } public void setDocumentId(int documentId) { this.documentId = documentId; } public String getDocumentName() { return this.documentName; } public void setDocumentName(String documentName) { this.documentName = documentName; } public int getDocumentType() { return this.documentType; } public void setDocumentType(int documentType) { this.documentType = documentType; } public Date getUploadDate() { return this.uploadDate; } public void setUploadDate(Date uploadDate) { this.uploadDate = uploadDate; } public byte[] getDocument() { return this.document; } public void setDocument(byte[] document) { this.document = document; } public long getDocumentSize() { return this.documentSize; } public void setDocumentSize(long documentSize) { this.documentSize = documentSize; } public String getTag() { return tag; } public void setTag(String tag) { this.tag = tag; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean getShared() { return shared; } public void setShared(boolean shared) { this.shared = shared; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } }