Forums : XPCom

Aller à la discussion :  Plus récente Plus ancienne

# nsIWebBrowserPrint limitation nom de fichier

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.

# Re: nsIWebBrowserPrint limitation nom de fichier

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

# Re: nsIWebBrowserPrint limitation nom de fichier

Envoyé par : DavidC

Date : 08/09/2011 10:01

Tu as un exemple assez complet ici

# Re: nsIWebBrowserPrint limitation nom de fichier

Envoyé par : thx1138

Date : 13/09/2011 00:24

Tu es sur du lien ?

# Re: nsIWebBrowserPrint limitation nom de fichier

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);
    }
}

# Re: nsIWebBrowserPrint limitation nom de fichier

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.

# Re: nsIWebBrowserPrint limitation nom de fichier

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. =/

# Re: nsIWebBrowserPrint limitation nom de fichier

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.