format A4 - ile to pikseli znaczy x na y

0

Witam
mam problem z wyliczeniem ile format A4 mam ustawić w pikselach x na y...

tworzę dokument dla Użytkownika PRO FORMA...

aby sobie wydrukował we własnym zakresie bezpośrednio z programu

może jeszcze podpowiedź w temacie

kto nadaje numerek wystawionym takim dokumentom...

jak rozumiem serwer mój powinien numerować
każdą odpowiedź do programu po otrzymaniu napływających plików od Użytkowników
z formularzy zamówienia usługi...

coś jak autoresponder z doklejonym kolejnym numerkiem porządkowym

ja to ustalę z bankiem teraz tylko proszę o podpowiedź czy w dobrym kierunku rozumuję...

dzięki za wszelkie sugestie

3

rozmiar fizyczny wydruku nie ma bezpośredniego przełożenia na ilość pixeli. Po drodze masz coś co się zowie dpi (dots per inch) czyli pixele na cal.
Przy wydruku 300dpi masz 300 pixeli na cal. format A4 w calach to 8.3 x 11.7. Mnożąc to przez 300 dostajesz 2490x3510.
Przy 600 dpi dostajesz juz 4960 x 7016.
Tak więc rozdzielczość zależy od DPI. DPI zależy od tego jaka drukarka wykonuje wydruk, oraz jakie DPI ma ustawione w konfiguracji. Musisz wykryć DPI przed wydrukiem i odpowiednio wszystko skalować. Możesz też skorzystać z gotowek biblioteki do wydruków.

0

tworzę dokument dla Użytkownika PRO FORMA...

aby sobie wydrukował we własnym zakresie bezpośrednio z programu

Pokaż kod jak go tworzysz i jak drukujesz.

0

to jest kod z książki Jacek Matulewski VC # 2010 stronica 128 bodajże!

ja muszę to ujawnić aby być chyba w zgodzie ?! z prawami autorskimi wymienionego Autora , którego szanuję !

potrzebuję podpowiedzi

jaką wielkość formy ( 400;800 mam obecnie )

aby bez ręcznego dobierania znaczy wydrukowania kilku kartek testowych

może jakiś sposób jest w kodzie ???

abym otrzymał proporcjonalną czcionkę 10 pkt

jakiś napis dowolny

na tym obrazku !!!

oto kod oryginalny z książki wymienionego Autora:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Arras
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //
        private Bitmap bufor = null;
        //
        /*
        //wersja bez buforowania
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            for (int x = 0; x < this.ClientSize.Width; x++)
                for (int y = 0; y < this.ClientSize.Height; y++)
                {
                    //Pen pioro = new Pen(Color.LemonChiffon, 1);
                    int R = (int)(255 * 0.5 * (1 + Math.Sin(x / 10.0)));
                    int G = (int)(255 * 0.5 * (1 + Math.Sin(y / 10.0)));
                    Pen pioro = new Pen(Color.FromArgb(R, G, 0), 1);
                    g.DrawLine(pioro, x, y, x + 1, y);
                }
        }
        */
        //
        //wersja z buforowaniem
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            //
            bufor = new Bitmap(
                this.ClientSize.Width,
                this.ClientSize.Height);
            //
            for (int x = 0; x < this.ClientSize.Width; x++)
                for (int y = 0; y < this.ClientSize.Height; y++)
                {
                    int R = (int)(255 * 0.5 * (1 + Math.Sin((x + y) / 10.0)));
                    int G = (int)(255 * 0.5 * (1 + Math.Sin((y - x) / 10.0)));
                    //
                    bufor.SetPixel(x, y, Color.FromArgb(R, G, 0));
                }
            g.DrawImage(bufor, 0, 0);
        }
        //
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {// 2015-06-09-2215  jaki to klawisz NIE PODAŁ !!!  
            // ustaliłem ustawiajac breakpoint w tej metodzie...
            //
            // nastepnie w debugerze uruchomiłem 
            // i naciskałem różne klawisze - BEZ REZULTATU !!!
            //
            // wpadłem przeto na pomysł iz mozet to być Ctrl + klawisz S  !!!
            // 
            // udało mi się 2015-06-09-2217 !!!
            // zatem jest to bez pomocy w literaturze trzeba nacisnąć oba te klawisze !!!
            //czego ten rympał nie podał !!!
            //
            if (e.KeyChar == (char)19 & bufor != null)
            {
                string nazwaPliku = "Arras.png";
                //
                bufor.Save(nazwaPliku);
                MessageBox.Show("Obraz zachowany w pliku " + nazwaPliku);
            }
        }
        //
        private void Form1_Load(object sender, EventArgs e)
        {

        }

    }
}
0

w tej chwili wpiąłem swój kod

który poniżej podaję

jednocześnie można podejrzeć obrazek faktury we fragmencie

który potrzebuję wzorując się na nim jedynie

powtórzyć co do samego otrzymania rozmiaru czcionek
oraz rozkładu na wydruku

aby Użytkownik mógł taki dokument sobie bez problemów wydrukować
jako fakturkę PRO FORMA

tło podkładu będzie białe czyli tylko linie dookoła chwilowo jako markery
zamiast jednolitego tła czerwonego w tej chwili

ojejku jak mi się nie chce główką poruszyć...

        //
        //wersja z buforowaniem
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            //
            bufor = new Bitmap(
                this.ClientSize.Width,
                this.ClientSize.Height);
            //
            for (int x = 0; x < this.ClientSize.Width; x++)
                for (int y = 0; y < this.ClientSize.Height; y++)
                {
                    int R = 10;// (int)(255 * 0.5 * (1 + Math.Sin((x + y) / 10.0)));
                    int G = 10;// (int)(255 * 0.5 * (1 + Math.Sin((y - x) / 10.0)));
                    //
                    bufor.SetPixel(x, y, Color.Red);//.FromArgb(R, G, 0));



                   // Pen pioro = new Pen(Color.LemonChiffon, 1);
                    // int R = (int)(255 * 0.5 * (1 + Math.Sin(x / 10.0)));
                    //int G = (int)(255 * 0.5 * (1 + Math.Sin(y / 10.0)));
                    //Pen pioro = new Pen(Color.FromArgb(R, G, 0), 1);
                   // g.DrawLine(pioro, x, y, x + 1, y);
                }
            g.DrawImage(bufor, 0, 0);
            /*
            Pen pioro = new Pen(Color.LemonChiffon, 10);

            Point psa = new Point(100, 100);
            Brush bd=new Brush(100);

            g.DrawString("aaaaaa",bd, pioro,psa.X,psa.Y );//.DrawString//("aaaaaaaa");

            /**/
            //
            #region pochodzi z 2011-MG MatmaGurom-nytec-2011
            // D:\DVD-20150512-baba130\0002-NX-24-MG-01-2015-01-13-0736 wersja 1-0-OK\NX24-MG-01
          //  label11.Location = new System.Drawing.Point(75, 490 + topOffset);
            //label11.BackColor = Color.Yellow;
            // UWAGA ! 2013-08-24   Close() powoduje wyświetlenie o braku obiektu Graphics !!!
            //
            int topOffset = 100;
            //
            using (Graphics g2 = this.CreateGraphics())
            using (Font f = new Font("Arial", 16, FontStyle.Regular))
            {
                for (int i = 470 + topOffset; i < 590 + topOffset; i += 20)
                {
                    //    g.DrawLine(Pens.Black, i, 0, i, this.Height);
                    //    g.DrawLine(Pens.Black, 0, 0, 500, 400);
                    g2.DrawLine(Pens.Black, 70, i, 780, i);
                }
                //   g.DrawLine(Pens.Aqua, 150, 610, 180, 610);
                g2.DrawString("good ", f, Brushes.Aqua, 5, 450 + topOffset);
                // g.DrawLine(Pens.Red, 150, 690, 180, 690);
                g2.DrawString("bad ", f, Brushes.Pink, 15, 550 + topOffset);
            }
            #endregion
            /**/

        }
        //

obrazek jeszcze zapomniałem dołączyć
pardon !

nie widzę mojego obrazka

przepraszam niezbyt jestem biegły zbyt mało korzystałem dotychczas z tej opcji

załącznika of coooz

0

dałem ten obrazek jako tło formy...

baaaaardzo proste...

i tylko na tych napisach co mnie interesują

pola Label a w niektórych może nawet i TextBox ???

aby se User sam wypełnił fakturkę !!!

atrakcja taka turystyczno-krajoznawcza....

ludzie oczekują udziału osobistego w imprezkach a nie tylko samo by się miało..

no więc mój klient sam se wypełni fakturkę i potem ochoczo jom zapłaci...

piszę często fonetycznie przekornie ! bo ten świat jakiś coraz bardziej głupkowaty Kukizy 60 %, etc.

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