Hola!!
Tengo que imprimir unas chequeras (tamaño personalizado) en una impresora Epson Fx-880 matricial.
1-Defino un nuevo formulario papel en el servidor de impresora con su respectivo nombre y dimensiones "sistemas" en Windows 7 x64 y XP es lo mismo.
2-Luego en el diseñador CrystalReports del reporte eligió el tamaño definido.
3-Por ultimo cuando mando a generar y mostrar el reporte x código selecciono el papel personalizado. Utilizo el código de abajo.
El reporte se muestra con el papel personalizado bien en el reportviewer. El problema surge cuando quiero mandar a imprimir haciendo clic sobre el botón impresora, me aparece el cuadro dialogo de impresión con la hoja Carta siempre seleccionada; por la cual el usuario tiene que ir a propiedades avanzada siempre para especificar el tamaño personalizado en este caso “sistema”.
Probé poniendo el tamaño que cree en el SO configurándolo por default en la impresora. Pero igual siempre manda como Carta a Imprimir.
Estuve buscando en Internet algún código para resolver este problema, pero no encuentro. Quisiera saber si alguien pudo solucionar esta problemática; el reporte se muestra bien pero al mandar a imprimir siempre esta seleccionado el tamaño “Carta”.
El codigo que uso:
reporte_generar_chequeras reporte = new reporte_generar_chequeras();
int InvoiceRawKind = 0;
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
for (int a11 = 0; a11 < pd.PrinterSettings.PaperSizes.Count; a11++)
{
if (pd.PrinterSettings.PaperSizes[a11].PaperName == "sistema") // Invoice is your paper name that you created
{
InvoiceRawKind = (int)pd.PrinterSettings.PaperSizes[a11].RawKind;
break;
}
else
InvoiceRawKind = 0;
}
reporte.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)InvoiceRawKind;