PDF를 만들기 위해 PDFBox를 사용하고 있으며 기본적으로 곡선 테두리와 일부 소셜 네트워크 정보 인 "배경"이미지를 PDF에 삽입합니다. 이미지가 크롬을 열 때PDFBox는 각 브라우저마다 다르게 표시되는 PDF를 만듭니다.
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
PDImageXObject pdImage = PDImageXObject.createFromFile(basePath+"images/"+ticket.getId()+".png", document);
PDImageXObject backgroundImage = PDImageXObject.createFromFile(basePath+"images/ticket_template.jpg",document);
backgroundImage.setWidth(595);
backgroundImage.setHeight(800);
contentStream.drawImage(backgroundImage,10,0);
contentStream.drawImage(pdImage,(page.getMediaBox().getWidth() - pdImage.getWidth())/2,page.getMediaBox().getHeight()-400);
float margin = 50;
// starting y position is whole page height subtracted by top and bottom margin
float yStartNewPage = page.getMediaBox().getHeight() - (2 * margin);
// we want table across whole page width (subtracted by left and right margin ofcourse)
float tableWidth = page.getMediaBox().getWidth() - (2 * margin);
boolean drawContent = true;
float yStart = yStartNewPage;
float bottomMargin = 70;
// y position is your coordinate of top left corner of the table
float yPosition = 550;
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
BaseTable table = new BaseTable(400, yStartNewPage, bottomMargin, tableWidth, margin, document, page, true, drawContent);
generateTable(table,"Event",event.getName());
generateTable(table,"Código",ticket.getId());
generateTable(table,"Data Ínicio",dateFormat.format(event.getStartDate()));
generateTable(table,"Data Fim",dateFormat.format(event.getEndDate()));
generateTable(table,"Mesa",eventTable.getName());
generateTable(table,"Número de Convidados",ticket.getNumberOfPeople()+"");
table.draw();
contentStream.close();
document.save(new File(basePath+"docs/"+ticket.getId()+".pdf"));
document.close();
가 잘못 될 것 같다 :
내가 PDF를 생성하기 위해 사용하는 코드를 검색또한 PDF에 색상이있는 이미지를 삽입하는 데 문제가있는 것 같으며 PDF를 변환 할 때 이상한 것처럼 보입니다. o 이미지
분석을 위해 문제의 PDF를 공유하십시오. – mkl