Я использую машину Linux с iText и JFreeChart. Я заметил после внедрения диаграммы, что шрифт Helvetica (un-embedded) теперь появляется в файле PDF. Вот код, я использую:Как можно вставить шрифт iText, используемый JFreeChart для заголовка и ярлыков диаграмм?
import com.itextpdf.text.Font;
// create chart using JFreeChart
final XYPlot plot = jchart.getXYPlot();
final LogAxis xAxis = new LogAxis("x axis");
final NumberAxis yAxis = new NumberAxis("y axis");
...
java.awt.Font cFont = new java.awt.Font("/home/fonts/jigsaw.otf",java.awt.Font.PLAIN,10);
xAxis.setLabelFont(cFont); // set axis label font
...
// add chart to PDF
PdfTemplate chart = canvas.createTemplate(chartWidth, chartHeight);
Graphics2D g2d1 = new PdfGraphics2D(chart, chartWidth, chartHeight);
Rectangle2D r2d1 = new Rectangle2D.Double(0,0,chartWidth,chartHeight);
jchart.draw(g2d1, r2d1);
g2d1.dispose();
canvas.addTemplate(chart,document.left(),100);
jigsaw.otf шрифт не наблюдается в PDF, который получает созданный, хотя размер шрифта 10 (производный от cFont
) используется (и изменение этого значения делает управление размер шрифта Helvetica, который заменяется здесь).
Моя конечная цель - вставить все шрифты. Это означает, что (1) вложение jigsaw.otf так, чтобы Helvetica не появлялось без внедрения, или (2) вложение Helvetica и забывание об использовании jigsaw.oft. Любой из них является приемлемым, если я могу контролировать размер шрифта, используемый в диаграмме JFreeChart.
Как это сделать (простейший способ)?
Существует раздел в книге iText 2-е издание 14.5.2 «Рисование текста в PdfGraphics2d», но я считаю, что это добавление текста в существующую графику, а не вложение текста, используемого JFreeChart в его диаграмме. Поправьте меня если я ошибаюсь. Очень смутно. Надеясь, что кто-то может предоставить простой пример того, как это делается.
Возможно, вы захотите _подмножить подмножество шрифта_ (используемых символов): 'FontFactory.defaultEmbedding = true;'. Если это работает без JFreeChart, он, вероятно, также работает. –