1

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

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

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

jsPrintSetup.getPrintersList()

但我找不到任何可以让我获得系统纸张尺寸的功能。拥有的是

jsPrintSetup.getPaperSizeList() // 未获取系统纸张尺寸 :(

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

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

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

4

2 回答 2

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_{您的打印机名称}.paper_data 和 print.printer_{您的打印机名称}.paper_name)

我希望这会对你有所帮助!

问候,

迪米塔尔·安杰洛夫

于 2013-09-18T05:41:28.110 回答
2

现在我找不到使用系统纸张尺寸的方法,但确实找到了一种将新纸张尺寸添加到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); 
于 2013-08-08T08:22:22.280 回答