現在、テキストドキュメントをpdfに変換してブラウザに表示しているため、フォントを保持できないようです。フォントはcourierですが、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
私の答えを参照してください。あなたの試練は意味がありますが、何もしません。リソースの中にフォントを持っているだけで、地下に車を持っているのに似ていますが、使っていないようです。また、フォントはコンテンツストリームに設定する必要があります。 –