Функция, выполняющая экспорт:
- Код: Выделить всё
var print = function() {
var webBrowserPrint = window.content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebBrowserPrint);
var PSSVC = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService);
var printSettings = PSSVC.newPrintSettings;
printSettings.printToFile = true;
printSettings.toFileName = "D:\\Temp\\Pdf\\" + Date().toString().split(":").join("-") + ".pdf";
printSettings.printSilent = true;
printSettings.outputFormat = Components.interfaces.nsIPrintSettings.kOutputFormatPDF;
printSettings.printBGColors = true;
printSettings.printBGImages = true;
printSettings.footerStrCenter = "";
printSettings.footerStrLeft = "";
printSettings.footerStrRight = "";
printSettings.headerStrCenter = "";
printSettings.headerStrLeft = "";
printSettings.headerStrRight = "";
alert("before print");
webBrowserPrint.print(printSettings, null);
alert(":)");
};
Проблема в том, что правильный pdf получается только в FF 3.6, а в других версиях вместо текста получается пустота, которую можно выделять как текст (но без появления текста). Есть подозрение, что это как-то связано с кодировкой.
А ещё, последний alert не показывается.
Можно ли как-нибудь подправить скрипт, чтобы в последних версиях (13 или 14) работало как надо?