현재 텍스트 문서를 pdf로 변환하고 브라우저로 렌더링하므로 글꼴을 유지할 수 없습니다. 글꼴은 택배이지만 pdf로 변환 될 때 다른 것으로 변환됩니다. 기본 글꼴을 유지하는 쉬운 방법이 있습니까? 아니면 적어도 변환 후 설정할 수 있습니까? 여기 코드가 있습니다.PDFBox TextToPdf 글꼴 유지
public void downloadFile(HttpServletResponse response, List<Report> reports) throws IOException{
OutputStream outputStream = response.getOutputStream();
PDFMergerUtility pdfMergerUtility = new PDFMergerUtility();
PDDocument documentToPrint = new PDDocument();
for(Report report : reports){
PDDocument pdDocument = new TextToPDF().createPDFFromText(new InputStreamReader(
new FileInputStream(fileDirectory + File.separator + report.getFileLocation()), "UTF8")
);
pdfMergerUtility.appendDocument(documentToPrint, pdDocument);
}
pdfMergerUtility.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "inline; filename=" + "download.pdf");
documentToPrint.save(outputStream);
documentToPrint.close();
}
문서를 추가하기 전에 다음과 같이 설정해 보았습니다.
PDDocumentCatalog documentCatalog = pdDocument.getDocumentCatalog();
PDResources pdResources = documentCatalog.getPages().get(i).getResources();
pdResources.add(PDType1Font.COURIER);
documentCatalog.getPages().get(i++).setResources(pdResources);
하지만 택배로 텍스트 문서의 글꼴을 가지고 있기 때문에 그 중 하나가
"글꼴은 택배입니다"- 아니, 당신은 어떤 글꼴을 설정하지 않습니다. 따라서 기본값 (Helvetical)이 사용됩니다. 택배가 사용 된 이유는 무엇이라고 생각 했습니까? –
나는 택배로 텍스트 문서의 글꼴이 있기 때문에. 그 글꼴을 사용한다고 가정했습니다. 예 현재 코드에서 글꼴을 설정하지 않았습니다. 나는 내가 그것을 설정하려고 할 때 작동하지 않는 것을 시도한 것을 편집 할 것이다. – Justin
내 대답보기. 너의 시도는 의미가 있지만 아무 것도하지 않는다. 자원에 폰트를 넣는 것만으로 지하실에 차를 소유하는 것과 같지만 차를 사용하지 않는 것입니다. 글꼴은 또한 내용 스트림에서 설정되어야합니다. –