2010-02-19 6 views
0

Comment imprimer ce qui est dans mon NSTableView? La vue utilise des données de base pour que tout soit stocké et puisse être saisi comme un NSArray. Mais comment pourrais-je l'imprimer? Au moment où vous cliquez sur le bouton d'impression, il semble juste prendre une photo de la vue et l'imprimer.Impression des données dans un NSTableView

Répondre

3

Oui, cela fonctionne exactement comme documenté. La vue est demandée pour sa représentation PDF (qui, pour une vue de table non modifiée, est exactement ce que vous voyez à l'écran), alors cela s'imprime.

Une vue drawing can be customized pour l'impression par rapport au dessin à l'écran, mais pour une vue de table, cela représente plus de problèmes que de valeur.

Il peut être plus simple de générer une représentation HTML de la table, puis de l'imprimer. Vous pouvez utiliser WebKit ou simplement NSAttributedString et NSTextView hors écran. L'astuce est de générer le code HTML, de créer une chaîne avec les données HTML (il y a une méthode juste pour cela), puis de la donner à la vue texte hors écran. La vue du texte serait de la taille désirée, alors vous lui dites simplement d'imprimer. Cela vous permet de contrôler la pagination, car WebKit ne prend actuellement pas en charge les parties CSS spécifiques à l'impression (en d'autres termes, il s'agit uniquement de «l'écran uniquement»).

+0

Approche intéressante, comment pourrais-je générer le code HTML et quelle méthode devrais-je utiliser pour créer une chaîne attribuée avec les données HTML? À votre santé. – Joshua

+0

Comment créer le code HTML? Vous parcourez votre ensemble de données et générez le tableau HTML approprié. En ce qui concerne la façon de créer la chaîne attribuée, les méthodes HTML appropriées se trouvent dans les additions d'AppKit String NSAttributed: http://bit.ly/aHZdZ6 –

+0

Comment cette technique vous permet-elle de contrôler la pagination? Mon page HTML est très bien imprimée, mais je veux imprimer plusieurs pages HTML à la suite, mais chaque page HTML devrait commencer sur une nouvelle page. Lorsque je les ai tous ajoutés au même NSMutableString, puis chargé dans une vue Web, tout ce que j'ai obtenu était une page juste après l'autre. Je voulais que chaque page soit séparée. Il suffit de charger le code HTML dans un NSTextView et l'impression qui fera cela en quelque sorte? –

1

Ce que j'ai fait est pris les données et l'a dessiné à un objet basé sur NSView d'une manière que l'utilisateur final voudrait imprimer. L'utilisateur imprime ensuite cela. c'est dans les docs.

J'aime l'idée de Joshua Nozzi, probablement beaucoup plus simple que le dessin personnalisé ...

Questions connexes