2017-11-15 82 views
0

現在、テキストドキュメントを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); 

しかし、私は宅配便などのテキスト文書内のフォントを持っているので、それはどちらか

+0

"フォントは宅配便です" - いいえ、あなたは任意のフォントを設定しないでください。したがってデフォルト(Helvetical)が使用されます。なぜ宅配便が使われていると思いましたか? –

+0

私は宅配業者としてテキスト文書にフォントを持っています。私はそれがそのフォントを取ると仮定しました。はい、現在のコードでフォントを設定していません。私はそれを設定しようとすると動作しない何かを編集します。 – Justin

+0

私の答えを参照してください。あなたの試練は意味がありますが、何もしません。リソースの中にフォントを持っているだけで、地下に車を持っているのに似ていますが、使っていないようです。また、フォントはコンテンツストリームに設定する必要があります。 –

答えて

1

を動作するようには思えません。

編集者は通常、Courierで表示します。デフォルトはHelveticaなので、設定する必要があります。

変更この:これに

PDDocument pdDocument = new TextToPDF().createPDFFromText(new InputStreamReader(.... 

TextToPDF textToPDF = new TextToPDF(); 
textToPDF.setFont(PDType1Font.COURIER); 
textToPDF.createPDFFromText(new InputStreamReader(.... 
+0

うわー.....どのように私はTextToPDFにsetFontを見なかった......それは完璧に働いた。これは私が思ったよりもはるかに簡単だったと思う.... – Justin

関連する問題