程序控制打印机,从那个盘口出纸,达到业务的应用,目前只支持TOP,MIDDLE,BOTTOM,其它的一般打印机上没有;
public class PDFPrint implements Printable {
private PDFFile file;
PDFPrint(PDFFile file) {
this.file = file;
}
public int print(Graphics g, PageFormat format, int index)
throws PrinterException {
int pagenum = index + 1;
// don't bother if the page number is out of range.
if ((pagenum >= 1) && (pagenum <= file.getNumPages())) {
// fit the PDFPage into the printing area
Graphics2D g2 = (Graphics2D) g;
PDFPage page = file.getPage(pagenum);
double pwidth = format.getImageableWidth();
double pheight = format.getImageableHeight();
double aspect = page.getAspectRatio();
double paperaspect = pwidth / pheight;
Rectangle imgbounds = null;
if (aspect > paperaspect) {
// paper is too tall pdfpage is too wide
int height = (int) (pwidth / aspect);
imgbounds = new Rectangle(
(int) format.getImageableX(),
(int) (format.getImageableY() + ((pheight - height) / 2)),
(int) pwidth, height);
} else {
// paper is too wide pdfpage is too tall
int width = (int) (pheight * aspect);
imgbounds = new Rectangle(
(int) (format.getImageableX() + ((pwidth - width) / 2)),
(int) format.getImageableY(), width, (int) pheight);
}
// render the page
PDFRenderer pgs = new PDFRenderer(page, g2, imgbounds, null, null);
try {
page.waitForFinish();
pgs.run();
} catch (InterruptedException ie) {
}
return PAGE_EXISTS;
} else {
return NO_SUCH_PAGE;
}
}
public static void main(String[] args) throws Exception {
File f = new File("d:/CNIT1199.pdf");
FileInputStream fis = new FileInputStream(f);
FileChannel fc = fis.getChannel();
ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
PDFFile pdfFile = new PDFFile(bb); // Create PDF Print Page
PDFPrintPage pages = new PDFPrintPage(pdfFile); // Create Print Job
PrinterJob pjob = PrinterJob.getPrinterJob();
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
pjob.setJobName(f.getName());
Book book = new Book();
book.append(pages, pf, pdfFile.getNumPages());
pjob.setPageable(book); // Send print job to default printer
PrintService printService = PrintServiceLookup
.lookupDefaultPrintService();
pjob.setPrintService(printService);
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//pras.add(MediaTray.MIDDLE);// 从2盘出
pras.add(MediaTray.TOP);//从1盘出
// pras.add(MediaTray.BOTTOM);//从3盘出
pjob.print(pras);
}
}
分享到:
相关推荐
"7种必看的盘口语言.pdf" 标题:"7种必看的盘口语言.pdf" 描述:"7种必看的盘口语言.pdf" 标签:"" 部分内容: 本文主要讲解了7种必看的盘口语言,这些语言都是庄家在股市中使用的精髓技术。掌握这些语言可以帮助...
"经典盘口分析秘籍.pdf" 本资源是一个关于盘口分析的秘籍,主要讲解了平手盘和平半盘的分析方法。下面是对资源的详细概括: 一、平手盘分析 1. 平手盘的定义:主队低水开盘,高水升盘后又慢慢降水降盘,后期水位...
08新书【道破盘口天机】伍朝辉 pdf 共15压缩件
[盘口].徐小明.扫描版控制系统设计的基本要求、控制系统设计中的约束、伺服系统设计、调节系统设计。
【指南针盘口杀补丁】是一款针对指南针软件的专用优化工具,主要功能是提升股票分析软件的盘口数据处理效率和准确性。在股市交易中,盘口是指交易所提供的实时买卖报价信息,包含了最佳五档买卖价格和数量,对于投资...
高清PPT 盘口语言[老姜] 涨停盘口口诀: 今天能否拉涨停,大单挂单是眼睛: 夹板大单是洗盘,拦截大单护亦出。 压迫大单是发令,蜂窝大单要起飞! 脉冲涨停初起步,阶梯涨停多主升。 震荡涨停洗又拉,斜刺涨停最...
根据提供的信息,我们可以推断《数字化定量分析完美PDF版》(徐小明著)主要涉及的是与金融投资、特别是股票市场相关的定量分析方法和技术。由于给出的部分内容仅重复了“股票研究网”的网址,我们无法从中获取具体...
返回的`df`是一个Pandas DataFrame对象,包含了该股票在指定日期的五档盘口数据。 获取到数据后,我们可以进行进一步的数据分析,例如计算买卖双方的挂单强度、统计价格分布等。此外,为了实现实时更新,可以设置...
【盘口双龙战法】是一种股票交易策略,主要基于分时图中白色分时线与黄色均价线的关系,用于识别潜在的强势股票。这种战法的核心在于寻找那些表现出【双龙齐飞】特征的股票,即白色分时线与黄色均价线同步上行,并在...
《数字化定量分析PDF版》由徐小明著,是一本深度探讨了数字化时代下金融投资领域内量化分析方法与技术的书籍。徐小明作为金融领域的资深专家,以其丰富的实战经验和深厚的理论功底,为读者提供了全面而深入的量化...
盘口语言解密高级版
识别分时盘口陷阱,庄家意图
盘口变动下Post-Only多单交易策略解析02ec04.pdf
【盘口信息深度学习攻略】是股市投资中的一项重要技能,尤其对于职业投资者而言,能够理解和解析盘口信息是衡量其看盘能力的关键。盘口信息主要包括了分时走势图、委托盘、委托买卖表、每笔成交量、价量成交明细图表...
盘口语言解读大全 盘口语言解读大全是股票投资中的一种重要技术,通过观察委买盘和委卖盘,投资者可以更好地了解主力庄家的意图,预测股价的走势。以下是盘口语言解读大全的知识点: 1. 上压板、下托板看主力意图...
【最新五合一盘口最新US源码程序】是一款集成了多种功能的综合盘口程序,其核心亮点在于全面升级和优化,确保了无错误运行,同时具备完善的功能、优雅的界面设计以及用户友好的操作体验。这款程序在安全性方面表现...
在深入探讨股市交易的艺术中,盘口语言无疑占据了至关重要的地位。盘口语言,顾名思义,是交易员通过交易所提供的实时买卖信息来解读市场的“语言”。它包含了挂单价格、买卖数量、盘面的即时变动等关键信息。这些...
通达信指标公式源码软件盘口异动副图指标 源码 通达信.doc
本文将详细介绍典型洗盘的分时及盘口特征,帮助投资者更好地识别洗盘行为,做出更为明智的投资决策。 首先,洗盘通常发生在股票已有一定涨幅之后,这时主力通过一系列操作,如高抛低吸,既能清理掉短线跟风盘,又能...
典型洗盘分时及盘口特征参考 洗盘是主力坐庄的一个重要环节,洗盘的主要目的在于抬高其他投资者的平均持股成本,把赢利的短线跟风盘赶出去,让看好后市的投资者进场,从而达到减少拉升股价时的抛盘的目的。同时主力...