[英]PDFBox TextToPdf keep font
我目前正在將文本文檔轉換為pdf並將其呈現給瀏覽器,但似乎無法保留字體。 字體是快遞字體,但在轉換為pdf時會轉換為其他字體。 是否有一種簡單的方法可以使其保持默認字體? 或者至少可以在轉換后進行設置? 這是代碼。
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);
但這似乎也不起作用
因為我在文本文檔中有一種字體作為快遞。
不,您不會,編輯器通常使用Courier來顯示它。 因此,您必須進行設置,因為默認值為Helvetica。
更改此:
PDDocument pdDocument = new TextToPDF().createPDFFromText(new InputStreamReader(....
對此:
TextToPDF textToPDF = new TextToPDF();
textToPDF.setFont(PDType1Font.COURIER);
textToPDF.createPDFFromText(new InputStreamReader(....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.