Stampare ed esportare a USB (File Format: XML / CSV / Excel) Funzionalità in un dispositivo intelligente [Symbol Motorola MC75 (Windows Mobile 6.1)] applicazione?

StackOverflow https://stackoverflow.com/questions/7817689

Domanda

Ho una forma che contiene caselle combinate, caselle di testo e una griglia di dati con molte righe. Voglio prendere stampare (con codice a barre generato [applicazione di generazione di codice a barre come immagine]) e anche voglia di esportare i dati in quella pagina in formato CSV / XML / Excel per USB o directory fisica del telefono. Per favore mi guida come esso. Questo è il mio primo Windows Mobile app. Io non sono così saggio in Windows Mobile. Ti prego, aiutami a trovare una soluzione migliore come un codice o un link o semplicemente me diretto.

È stato utile?

Soluzione

Per creare la stampa fuori, si dovrà scrivere al vostro PrintDocument utilizzando GDI. Non c'è nulla di realmente integrato. Si potrebbe fare uno screenshot (codice qui sotto).

Esportazione dei dati in formato CSV è meglio farlo da soli pure. Basta Crea / Aprire un flusso di file e scrivere quello che vuoi ad esso.

Cattura schermo: Richiede PInvoke per BitBlt e GetDC

const int SRCCOPY = 0x00CC0020;

[DllImport("coredll.dll")]
private static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);

[DllImport("coredll.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);

public Bitmap ScreenCapture(string fileName) {
  Bitmap bitmap = new Bitmap(this.Width, this.Height);
  using (Graphics gScr = Graphics.FromHdc(GetDC(IntPtr.Zero))) { // A Zero Pointer will Get the screen context
    using (Graphics gBmp = Graphics.FromImage(bitmap)) { // Get the bitmap graphics
      BitBlt(gBmp.GetHdc(), 0, 0, this.Width, this.Height, gScr.GetHdc(), this.Left, this.Top, SRCCOPY); // Blit the image data
    }
  }
  bitmap.Save(fileName, ImageFormat.Png); //Saves the image
  return bitmap;
}

[Aggiornamento]:

  • Se si desidera che l'immagine salvata a una particolare posizione, inviare il percorso completo con il nome del file (cioè \\Windows\Temp\screenShot.png).

  • Se si desidera escludere i controlli, ridurre il this.Width, this.Height, this.Left e this.Right fino ad avere la dimensione che si adatta la regione che funziona.

  • Infine, se si desidera che il Bitmap da utilizzare in memoria, è sufficiente salvarlo e usarlo come necessario. Esempio:

    panel1.Image = ScreenCapture ( "image.png"); panel1.BringToFront ();

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top