JS打印设置 - 选择系统纸张尺寸?

时间:2013-08-08 06:58:05

标签: javascript firefox printing firefox-addon printing-web-page

我需要按照系统(Windows)/打印机和传真中定义的自定义纸张尺寸打印页面。

我正在使用此FireFox扩展“ JS Print Setup ”。我完成了他们的文档 http://jsprintsetup.mozdev.org/reference.html

它具有获取系统打印机列表的功能

  

jsPrintSetup.getPrintersList()

但我找不到任何可以让我获得系统纸张大小的功能。 有一个是

  

jsPrintSetup.getPaperSizeList()//没有获得系统纸张大小:(

但是它给出了自己的纸张尺寸,而不是来自系统。

那么如何通过扩展程序选择系统纸张尺寸,或者如果不可能,那么在扩展程序中创建一个?

附注:我正在使用此扩展程序,因为它能够通过选择(通过代码)打印机和纸张尺寸(尚未发生)来进行静音打印。

2 个答案:

答案 0 :(得分:2)

For Now我找不到使用系统Paper Sizes的方法,但确实找到了一种方法来向jsPrintSetup.getPaperSizeList()

添加新的纸张尺寸
jsPrintSetup.definePaperSize(101, 101, "Custom", "Custom_Paper", "Custom PAPER", 250, 400, 
jsPrintSetup.kPaperSizeMillimeters);
jsPrintSetup.setPaperSizeData(101);

根据文件

void definePaperSize(in short jspid, in short pd, in wstring pn, in wstring pwg, in wstring name, in double w, in double h, in short m); 

答案 1 :(得分:2)

在不同平台及其打印子系统上,纸张定义不同。 jsPrintSetup正在使用自己的内置列表,其中包含具有自己ID并与平台特定ID匹配的纸张定义。 您可以查看预定义的纸张定义列表,并使用最适合您的情况。 (http://jsprintsetup.mozdev.org/reference.html#ENHANCED_PAPERHANDLING) 例如,如果要使用ISO A4纸张尺寸,可以调用jsPrintSetup.setPaperSizeData(10); 要使用自定义纸张尺寸,您必须先在平台打印系统中定义,然后在jsPrintSetup中定义正确的paperData和paperName值。找到它们的最简单方法是从Firefox手动打印到本文之后从about:config获取它。 (print.printer_ {your printer name} .paper_data and print.printer_ {your printer name} .paper_name)

我希望这会对你有帮助!

此致

Dimitar Angelov