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.