Envoyé par : DavidC
Date : 06/09/2011 16:44
Bonjour,
J'utilise XUL 1.9, et j'imprime un fichier, mais dans la popup d'impression, le nom du fichier (dont la taille est supérieure à 50 caractères) est tronqué au moment ou je l'enregistre en format PDF. J'obtiens : nomDeMonFichier...
Voici mon code :
printWithOutputFileName : function(outputFileName, showProgressBar) { var webBrowserPrint = this.getWebBrowserPrint(); var printSettings = this.getPrintSettings(); printSettings.docURL = "titre"; printSettings.title = outputFileName; printSettings.showPrintProgress = false; printSettings.printToFile = true; printSettings.toFileName = outputFileName; webBrowserPrint.print(printSettings, nProgressListener); var PSSVC = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService); PSSVC.savePrintSettingsToPrefs(printSettings, true,printSettings.kInitSaveAll); PSSVC.savePrintSettingsToPrefs(printSettings, false,printSettings.kInitSavePrinterName); }
avec
getWebBrowserPrint : function() { return _content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebBrowserPrint); },
Or cela fonctionnait avec la version précédente de XUL. Y-a-t'il une limitation du nombre de caractères pour le nom d'un fichier ?
Merci pour votre aide.
Envoyé par : thx1138
Date : 07/09/2011 23:53
Tu génères du PDF directement à partir de XulRunner ?
Peux-tu donner un exemple complet stp
merci
Envoyé par : DavidC
Date : 08/09/2011 10:01
Tu as un exemple assez complet ici
Envoyé par : thx1138
Date : 13/09/2011 00:24
Tu es sur du lien ?
Envoyé par : DavidC
Date : 13/09/2011 09:32
Voici mon code :
function getWebBrowserPrint() { return _content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebBrowserPrint); }
function getPrintSettings() { var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); if (pref) { gPrintSettingsAreGlobal = pref.getBoolPref("print.use_global_printsettings", false); gSavePrintSettings = pref.getBoolPref("print.save_print_settings", false); } }
function print() { var webBrowserPrint = getWebBrowserPrint(); var printSettings = getPrintSettings(); printSettings.docURL = outputFileName; printSettings.showPrintProgress = false; printSettings.printBGColors = true; printSettings.printBGImages = true; printSettings.toFileName = outputFileName; try { webBrowserPrint.print(printSettings, null); if (gPrintSettingsAreGlobal && gSavePrintSettings) { var PSSVC = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService); PSSVC.savePrintSettingsToPrefs(printSettings, true, printSettings.kInitSaveAll); PSSVC.savePrintSettingsToPrefs(printSettings, false, printSettings.kInitSavePrinterName); } } catch (e) { LOG(e); } }
Envoyé par : DavidC
Date : 23/09/2011 09:30
Bonjour,
le problème vient finalement d'une limitation de la longueur du nom du fichier à 30 caractères, dans la méthode BeginPrinting de gfxWindowsSurface.cpp, suite à un crash dans la dialogue "Enregistrer sous".
nsresult gfxWindowsSurface::BeginPrinting(const nsAString& aTitle, const nsAString& aPrintToFileName) { #ifdef NS_PRINTING #define DOC_TITLE_LENGTH 30 DOCINFOW docinfo; nsString titleStr(aTitle); if (titleStr.Length() > DOC_TITLE_LENGTH) { titleStr.SetLength(DOC_TITLE_LENGTH-3); titleStr.AppendLiteral("..."); } ...
Dans des versions plus récentes de XUL1.9, cette limitation a été passée à 1024.
Cordialement.
Envoyé par : Raphael
Date : 24/09/2011 06:27
Merci pour l'info... et désolé que personne n'ait pu t'aider sur ce coup.
J'adore cette plateforme, mais c'est pas toujours facile de trouver de l'aide pour des trucs pointus. =/
Envoyé par : thx1138
Date : 25/09/2011 02:31
Tu sais comment faire un printPreview avec XulRunner >= 2 ?
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.