@font-faceを使用してカスタムフォントをhtmlに埋め込みました。これはすべてのブラウザで機能しますが、Javaカスタムフォントのitextrenderを介してpdfに変換しようとすると、Arialのようなデフォルトのフォントを使用して機能しなくなります。
cssコード:
@font-face {
font-family: Subaru-Medium;
src: url('fonts/Subaru-Medium.eot'); /* IE9 Compat Modes */
src: url('fonts/Subaru-Medium.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('fonts/Subaru-Medium.ttf') format('truetype'), /* Safari, Android, iOS */
url('fonts/Subaru-Medium.svg#svgFontName') format('svg'); /* Legacy iOS */
}
Javaコード:
public static void writePDF(String HTMLfileName, String PDFFileName, String WhereToSave,String fontDirectory)
{
try
{
String url = new File(HTMLfileName).toURI().toURL().toString();
String outputFile = WhereToSave+PDFFileName;
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver=renderer.getFontResolver();
fontResolver.addFont("C:\\Users\\benay.debnath\\Desktop\\htmltemplate\\fonts\\Subaru-Medium.ttf", true);
// fontResolver.addFontDirectory(fontDirectory, true);
SharedContext scontext=renderer.getSharedContext();
// scontext.setDPI(72);
scontext.setDotsPerPixel(12);
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
System.out.println("status:$:true^#^message:$:PDF Genarated^#^fileName:$:"+outputFile);
}catch (Exception e) {
System.out.println("status:$:false^#^message:$:"+e.getMessage());
}
}
誰かが私が間違っていることを見つけるのを手伝ってくれる?感謝します。