2010-11-17 5 views
4

J'utilise le modèle de code de Microsoft à this site avec cet extrait pour imprimer une seule alimentation de la ligne et la forme:impression avec des imprimantes matricielles via la programmation C#

string s = "Hello world!\xC"; //\xC means form feed 
PrintDialog pd = new PrintDialog(); 
pd.PrinterSettings = new PrinterSettings(); 
if (DialogResult.OK == pd.ShowDialog(this)) 
{ 
    RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s); 
} 

Mais pas de chance, ma taille de papier à long est toujours comme le format de papier A4 longtemps.

Quel est le problème avec mon code? Est-ce que quelqu'un a obtenu un indice ou un truc pour faire face à ce problème?

+0

Avez-vous des problèmes avec le code ou avec l'impression? – drudge

+1

Veuillez expliquer ce que signifie "mon format de papier long est toujours comme le format de papier A4 long" signifie, et pourquoi cela serait un problème. –

+0

Wow, les imprimantes matricielles existent toujours? Je pensais que ceux-ci sont morts avec les années 90 ... –

Répondre

4

Il est difficile de dire quel pourrait être le problème. SendStringToPrinter finit par appeler WritePrinter, qui est censé copier ce que vous l'envoyez à l'imprimante inchangé. Un saut de page est supposé faire avancer le papier verticalement jusqu'au début de la page suivante. Dans ce cas, la page suivante est définie par l'imprimante et la configuration de l'imprimante indique la durée de la page.

Voulez-vous avancer d'une ligne en utilisant un saut de ligne?

+2

Pour l'OP, un saut de ligne est '\ x0A' au lieu de' \ x0C'. –

+0

vous avez raison, le papier peut être avancé en utilisant le saut de ligne. et résolu mon problème, merci pour le saut de ligne "hack" :) @Greg Hewgill et aussi merci pour la commande de saut de ligne. – rasputin

+0

@rasputin, si cela a résolu le problème, alors s'il vous plaît sélectionnez ceci comme réponse acceptée. –