我最近发现我编写的在 Windows 上运行多年的徽章打印程序在 MAC OS X 上无法正确打印。我使用的是 Arial truetype 字体。该程序似乎显示一种基本字体,没有适当的缩放。我正在使用 Intellij 和 jdk1.7.0_15。字体在屏幕上正确显示,但在我打印到打印机或 pdf 时却没有。当我使用 GraphicsEnvironment.getAvailableFontFamilyNames 在控制台上列出程序可用的字体时,Arial 被列为其中之一。当我直接从字体文件加载字体时,它可以正常工作。我一直在追赶我的尾巴超过一天,任何建议将不胜感激。这是演示我的问题的代码......
/**
* DisplayPage.java
*/
import java.awt.*;
import java.awt.print.*;
public class DisplayPage extends ApplicationFrame {
public static void main(String[] args) {
// Create app and display draw page
DisplayPage f = new DisplayPage();
f.setTitle("PaintingAndStroking v1.0");
f.setSize(850, 1100);
f.center();
f.setVisible(true);
// Generate print job to print page
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(new PrintPage());
boolean doPrint = pj.printDialog();
if (doPrint) {
try {
pj.print();
} …Run Code Online (Sandbox Code Playgroud)