Drukowanie A5 w poziomie.

0

Witam.

Próbuję wydrukować coś na kartce formatu A5 w poziomie.
Wyklepałem coś takiego:

private void Print()
{
	PrintDocument printDocument1 = new PrintDocument();
	var paperSize = printDocument1.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
	printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
	printDocument1.PrinterSettings.DefaultPageSettings.Landscape = true;
	printDocument1.PrintPage += printDocument1_PrintPage;
	printDocument1.Print();
}

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawRectangle(new Pen(Color.Black, (float)0.2), new Rectangle(5, 5, 500, 60));
            e.Graphics.DrawString("TEST WYDRUKU", new Font("Tahoma", 13, FontStyle.Bold), new SolidBrush(Color.Black), new Rectangle(5, 10, 500, 50));
        } 

Jednak wydruk jest na A4 i w pionie (przykładowy z drukarki PDF w załączniku).

Pytanie standardowe: co zrobiłem źle?

0

prawdopodobnie (nie wiem jak w tym języku się drukuje), najbardziej podejrzany jest fragment "PaperName == "A5");" tzn. nie wiadomo czy taki rozmiar jest zdefiniowany w drukarce. Np. przy korzystaniu z GhostScripta, w przypadku błędnego polecenia wszystko leci w opcji "deflault" -pionowe A4

0

Problem był banalny (wstyd się przyznać).

private void Print()
{
	PrintDocument printDocument1 = new PrintDocument();
	var paperSize = printDocument1.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");

	// tak było
	//printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
	//printDocument1.PrinterSettings.DefaultPageSettings.Landscape = true;

	// tak powinno być
	printDocument1.DefaultPageSettings.PaperSize = paperSize;
	printDocument1.DefaultPageSettings.Landscape = true;

	printDocument1.PrintPage += printDocument1_PrintPage;
	printDocument1.Print();
}

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawRectangle(new Pen(Color.Black, (float)0.2), new Rectangle(5, 5, 500, 60));
            e.Graphics.DrawString("TEST WYDRUKU", new Font("Tahoma", 13, FontStyle.Bold), new SolidBrush(Color.Black), new Rectangle(5, 10, 500, 50));
        } 

Próbowałem zmienić ustawienia drukarki (na co ona sama pewnie "ot tak" nie pozwala), a nie ustawienia swojego wydruku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1