2016-06-16 23 views
0

私はこのような文字を印刷しようとしている:特殊文字

°µ± Ω≥≤Δα 

私は最初の3に問題を持っていないんだけど、第2の組の文字が印刷されていませんPrimefaces Appからレポートをコンパイルして実行すると

try { 
    fc = FacesContext.getCurrentInstance(); 
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
    ec.responseReset(); 
    ec.setRequestCharacterEncoding("UTF-8"); 
    ec.setResponseHeader("Content-Disposition", "inline; filename=\"" 
      + "Report.pdf\"");// opens in same page 
    ec.setResponseContentType("application/pdf"); 
    OutputStream output = ec.getResponseOutputStream(); 
    Connection jdbcConnection = datasource.getConnection(); 
    JasperDesign jasperDesign = JRXmlLoader.load(reportFile); 
    JasperReport jasperReport = JasperCompileManager 
      .compileReport(jasperDesign); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(
      jasperReport, parameterMap, jdbcConnection); 
    //JasperExportManager.exportReportToPdfStream(jasperPrint, output); 
    JRPdfExporter pdf = new JRPdfExporter(); 
    pdf.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
    pdf.setParameter(JRExporterParameter.OUTPUT_STREAM, output); 
    pdf.exportReport(); 
    output.flush(); 
    output.close(); 
    fc.getCurrentInstance().responseComplete(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

レポートが実行され、印刷ジャスパーStudioからテストする場合、私は必要なすべての文字:

は、ここで私はレポートを印刷するために使用しているコードです。ここでの主な問題はPDFストリームのエンコードですが、私は提案にはオープンしています。

+0

あなたはフォント拡張機能を使用していますか? –

+0

いいえ、フォントの問題ではないためです。 Jasper Studioでは、定義済みのフォントで動作します。 @AlexK – joseluiselp

+1

それはフォントの問題かもしれません。また、フォント拡張機能を使用する必要があります。 –

答えて

1

私は自分自身に答えます。私はちょうどレポートでDejavu Sansを使用し、基本的なジャスパーフォントに依存関係を置きました。それはそれでした。それがかのうのコメントでみんなに

おかげで私のpom.xmlの断片だ

<!-- Fonts for special characters --> 
    <dependency> 
     <groupId>net.sf.jasperreports</groupId> 
     <artifactId>jasperreports-fonts</artifactId> 
     <version>6.0.0</version> 
    </dependency>