java 获取mac字体_Mac OS X上的Java App无法正确打印字体
我最近发现我写的徽章打印程序在
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();
} catch (PrinterException e) {
System.out.println(e);
}
}
}
/**
* This is called by the windows event processor
* @param g java.awt.Graphics context for display
*/
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
DrawPage.draw(g2d);
}
}
/**
* ApplicationFrame.java
*/
import java.awt.*;
import java.awt.event.*;
public class ApplicationFrame extends Frame {
public ApplicationFrame() { this("ApplicationFrame v1.0"); }
public ApplicationFrame(String title) {
super(title);
setSize(850, 1100);
center();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
}
public void center() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
int x = (screenSize.width - frameSize.width) / 2;
int y = (screenSize.height - frameSize.height) / 2;
setLocation(x, y);
}
}
/**
* PrintPage.java
*/
import java.awt.*;
import java.awt.print.*;
public class PrintPage
implements Printable {
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
// We have only one page
if (page > 0) {
return NO_SUCH_PAGE;
}
// Create Graphics2D context
Graphics2D g2d = (Graphics2D)g;
// Draw page
DrawPage.draw(g2d);
// Verify page exists
return PAGE_EXISTS;
}
}
/**
* DrawPage.java
*/
import java.awt.*;
public class DrawPage {
static public void draw(Graphics2D g2d) {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = ge.getAllFonts();
String[] fontFamilies = ge.getAvailableFontFamilyNames();
for (int i=0; i
System.out.println(fontFamilies[i]);
}
double x = 15, y = 50, w = 70, h = 70;
GradientPaint gp = new GradientPaint(75, 75, Color.white,
95, 95, Color.gray, true);
// Fill with a gradient
g2d.setPaint(gp);
// Stroke with a solid color.
g2d.setPaint(Color.black);
g2d.setStroke(new BasicStroke(8));
// Stroke with a gradient.
g2d.setPaint(gp);
// Draw text string
String text = new String("This is a test...");
g2d.setPaint(Color.black);
g2d.setStroke(new BasicStroke(8));
Font font = new Font("Arial", Font.PLAIN, 36);
g2d.setFont(font);
g2d.drawString("This is a test of Arial 36", 50, 100);
font = new Font("Arial", Font.PLAIN, 72);
g2d.setFont(font);
g2d.drawString("This is a test of Arial 72", 50, 200);
}
}
最佳答案 我写了一篇关于这篇文章的博文,名为
Printing is Broken on Mac OS X with Java 7,其中包括我发现的所有内容,包括原因,错误报告,以及我们现在的解决方法.简短的版本是它看起来像苹果的Mac OS或Java 7中的一个错误,并且在撰写本文时它仍然没有修复.
java 获取mac字体_Mac OS X上的Java App无法正确打印字体相关推荐
- java获取mac和机器码,注册码的实现、CPU序列号
CPU序列号: package test; import java.io.IOException; import java.util.Scanner; public class CPUTest { / ...
- Java: 获取MAC网络地址
Java: 获取MAC网络地址 0. 背景 最近由于课程设计,需要使用MAC物理地址作为软件注册码的唯一标识,故成此博客! 从各个网络适配器的作用 →\rightarrow→ 确定哪一个MAC地址作为 ...
- Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL
Java获取项目当前请求的全部URL,Java获取Referer,Java获取完整链接地址URL >>>>>>>>>>>>> ...
- mac memcached_Mac OS X上的Java Memcached
mac memcached 介绍 在本文中,我将解释如何: 在Mac OS X上安装和配置Memcached 在Java应用程序中使用Memcached 我不会过多地介绍在您的应用程序中使用分布式缓存 ...
- Mac OS X上的Java Memcached
介绍 在本文中,我将解释如何: 在Mac OS X上安装和配置Memcached 在Java应用程序中使用Memcached 我不会过多地介绍在您的应用程序中使用分布式缓存的好处,但是至少让我们提供一 ...
- Mac OS X上的Java安装位置在哪里?
本文翻译自:Where is Java Installed on Mac OS X? I just downloaded Java 7u17 on Mac OS 10.7.5 from here an ...
- java获取远程图片并在图片上写文字
本编文章主要是分享一下,从远程获取图片文件,用java在图片上写文字并合成图片的示例.一下代码完全拷贝后是可以正常运行的. 主要有三个类: DrawPicFromUrlToOSS:核心类,获取图片并在 ...
- java获取mac地址-屏蔽ip封mac地址
首先要说的是:可以支持外网机器的mac地址获取. 以前弄了一个只能访问局域网. 有防火墙就访问不了, 但是这个不用担心了. 测试了百度的ip,已经可以获得mac地址 测试效果图: java通过ip获 ...
- hadoop启动_Mac OS X 上搭建 Hadoop 开发环境指南
Hadoop 的配置有些麻烦,目前没有一键配置的功能,虽然当时我在安装过程中也参考了有关教程,但还是遇到了很多坑,一些老版本的安装过程已不适用于 hadoop2.x,下面就介绍一下具体步骤. 安装 J ...
最新文章
- 固态铝电解电容与液态铝电解电容
- 《那些年啊,那些事——一个程序员的奋斗史15》
- SQL语句 怎么把从一个表中查出来数据插入到另一个表中
- hive数据类型转换
- SAP Spartacus home 页面的 cx-page-slot selector
- matlab实现unix时间戳到标准时间的转换
- Spring Aop总结
- C++中比较两个浮点数是否相等
- 苏宁MOCK测试桩服务建设实践
- C#中实现空间的登录加密密码脚本里的方法
- python的特性是_python的特性
- SAP License:对不起,“下一代ERP”仍旧是现在的ERP
- android Activity的Task Affinity lanchMode
- CS224N笔记(十):问答系统
- mysql dba 试题_MySQLDBA面试题-上海热璞科技
- Java_8排序(冒泡排序和选择排序)
- 4月3日 今天谈谈支持向量机SVM 与超平面
- 软件开发工作量的估算方法
- WRF学习笔记二:WRF-chem简单入门运行指南
- 电脑组装好了开机完全没反应?