Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 08h58   #1
Membre éclairé
 
Avatar de DaveShot
 
Homme David CHAUTARD
Ingénieur développement logiciels
Inscription : août 2008
Messages : 197
Détails du profil
Informations personnelles :
Nom : Homme David CHAUTARD
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2008
Messages : 197
Points : 303
Points : 303
Par défaut XPCOM nsIWebBrowserPrint limitation nom de fichier

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... (voir la capture attachée)

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

Code :
1
2
3
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.
Images attachées
Type de fichier : png capture.PNG (19,7 Ko, 3 affichages)
DaveShot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 09h30   #2
Membre éclairé
 
Avatar de DaveShot
 
Homme David CHAUTARD
Ingénieur développement logiciels
Inscription : août 2008
Messages : 197
Détails du profil
Informations personnelles :
Nom : Homme David CHAUTARD
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2008
Messages : 197
Points : 303
Points : 303
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".

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
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.
DaveShot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web