java中print换行符_如何在java中打印带换行符的字符串
我需要使用
java打印一个字符串,所以我喜欢以下解决方案经过google搜索了很多.我做了一些更改来打印字符串而不显示打印对话框.我的问题是虽然这个方法正确地打印了字符串,但它不会像我定义的那样破坏行.请告诉我如何打印带换行符的字符串.
public class PrintBill implements Printable {
private static final String mText = "SHOP MA\n"
+ "----------------------------\n"
+ "Pannampitiya\n"
+ "09-10-2012 harsha no: 001\n"
+ "No Item Qty Price Amount\n"
+ "1 Bread 1 50.00 50.00\n"
+ "____________________________\n";
private static final AttributedString mStyledText = new AttributedString(mText);
static public void main(String args[]) throws PrinterException {
PrinterService ps = new PrinterService();
PrintService pss = ps.getCheckPrintService("Samsung-ML-2850D-2");//get the printer service by printer name
PrinterJob printerJob = PrinterJob.getPrinterJob();
printerJob.setPrintService(pss);
Book book = new Book();
book.append(new PrintBill(),new PageFormat());
printerJob.setPageable(book);
try {
printerJob.print();
System.out.println(printerJob.getPrintService().getName());
System.out.println("Print compleated..");
} catch (PrinterException exception) {
System.err.println("Printing error: " + exception);
exception.printStackTrace();
}
@Override
public int print(Graphics g,PageFormat format,int pageIndex) {
Graphics2D g2d = (Graphics2D) g;
g2d.translate(format.getImageableX(),format.getImageableY());
g2d.setPaint(Color.black);
Point2D.Float pen = new Point2D.Float();
AttributedCharacterIterator charIterator = mStyledText.getIterator();
LineBreakMeasurer measurer = new LineBreakMeasurer(charIterator,g2d.getFontRenderContext());
float wrappingWidth = (float) format.getImageableWidth();
while (measurer.getPosition() < charIterator.getEndIndex()) {
TextLayout layout = measurer.nextLayout(wrappingWidth);
pen.y += layout.getAscent();
float dx = layout.isLeftToRight() ? 0 : (wrappingWidth - layout.getAdvance());
layout.draw(g2d,pen.x + dx,pen.y);
pen.y += layout.getDescent() + layout.getLeading();
}
return Printable.PAGE_EXISTS;
}
}
打印机服务提供课程
public class PrinterService {
public PrintService getCheckPrintService(String printerName) {
PrintService ps = null;
DocFlavor doc_flavor = DocFlavor.STRING.TEXT_PLAIN;
PrintRequestAttributeSet attr_set =
new HashPrintRequestAttributeSet();
attr_set.add(new Copies(1));
attr_set.add(Sides.ONE_SIDED);
PrintService[] service = PrintServiceLookup.lookupPrintServices(doc_flavor,attr_set);
for (int i = 0; i < service.length; i++) {
System.out.println(service[i].getName());
if (service[i].getName().equals(printerName)) {
ps = service[i];
}
}
return ps;
}
}
java中print换行符_如何在java中打印带换行符的字符串相关推荐
- python怎么去掉换行符_如何在Python中删除尾部换行符?
如何在Python中删除尾部换行符? 什么是Perl的chomp函数的Python等价物,如果它是换行符,它会删除字符串的最后一个字符? 26个解决方案 1473 votes 尝试方法lstrip() ...
- java 合并两个列表_如何在Java中合并两个列表?
java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...
- java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素
如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...
- java类添加单元测试代码_如何在java中单元测试时跳过一段代码
如果问题确实是: 如何在Java 然后我给出的答案同意单元测试时,我跳过一段代码.依赖注入,嘲讽框架绝对是真正的单元测试的正确途径. 但是,如果问题是: 使用JUnit(或其他单元测试框架) 然后我想 ...
- java注释中添加删除线_如何在Word中添加和删除注释
java注释中添加删除线 Leaving comments in a Word document is a good way to leave feedback on a piece you're r ...
- java中long如何使用_如何在Java中将long转换为int?
问题 如何在Java中将long转换为int? #1 热门回答(218 赞) 简单类型转换应该这样做: long l = 100000; int i = (int) l; 但请注意,大数(通常大于21 ...
- eval在python中是什么意思_如何在Python中使用eval ?
Python中的 eval是什么? 在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种.eval函数的语法如下: eval(expres ...
- python中while语句是_如何在Python中使用while语句[适合初学者]
while语句是重复循环的语句,那么如何用Python编写,下面Gxl网就带领大家来学习一下Python中使用while语句.[推荐阅读:Python视频教程] 一:什么是while语句?Python ...
- linux中设置环境变量_如何在Linux中设置环境变量
linux中设置环境变量 Wondering how to set environment variables in Linux? This is exactly what we'll be doin ...
最新文章
- HPAIC人类蛋白质图谱分类挑战赛金牌经验分享
- freeCodeCamp:Find the Longest Word in a String
- 【Android 应用开发】Android应用的自动更新模块
- 嫌微软要价“太狠” 东莞网吧巨头拒绝付费
- 八十五、store数据,actionCreators 与 constants 的拆分和redux-immutable的使用
- 潍坊学院计算机系崔玲玲,人工免疫算法在引水工程中的应用.pdf
- Java 8:按集合分组
- r语言读写word_R语言:在word中插入ggplot
- python-变量操作-字符串
- Leetcode——1. Two Sum
- easyui datagrid中添加右键菜单事件
- 软件工程师的技能知识图谱0.1(偏后台方向)
- 西门子PLC,STEP7 v5.5安装以及仿真软件Plcsim v5.4 sp5安装
- 常见的笔记本电池使用技巧
- 修改opencv3.4 VideoCapture dshow模块以支持圆刚cv710等需要配置CrossBar的采集卡
- 国际化翻译navigator.language与语种对照表
- java爬虫系列(三)——漫画网站爬取实战
- C++下的OpenCV中Mat类型存储的图像格式
- 298day(点触验证)
- element组件---Form
热门文章
- 东方通如何查看版本linux命令,东方通tongweb linux安装 Web程序 - 贪吃蛇学院-专业IT技术平台...
- 用户变量tmp修改了怎么恢复_恢复ext4文件系统被误删的文件
- vivos7和华为p40哪个好 vivos7和华为p40参考配置区别评测
- syh计算机术语,计算机科学与工程学院第四届“计e荣耀”年度盛典微采访
- 最强5G生态联盟诞生!苏宁天猫携手打造最大5G换新平台
- NuGet获取的包的版权问题
- java将固定日期后推几天的功能实现
- 什么是锚点?锚点有什么作用?
- java面向对象的设计思想,java设计形式之面向对象的思想(think in OO(Object Oriented))...
- 软件测试之安装和卸载测试用例设计