Imprimer et Exporter vers USB (Format de fichier: XML / CSV / Excel) Fonctionnalité dans Smart Device [Symbol Motorola MC75 (Windows Mobile 6.1)] l'application?
-
26-10-2019 - |
Question
J'ai une forme qui contient des zones de liste déroulante, et textboxes une grille de données avec de nombreuses lignes. Je veux prendre imprimer (avec code à barres généré [code-barres de l'application de production comme image]) et que vous souhaitez également exporter les données dans cette page au format CSV / XML / Excel vers USB ou d'un répertoire physique du téléphone. S'il vous plaît me guider comment elle. Ceci est ma première application Windows Mobile. Je ne suis pas si sage dans Windows Mobile. S'il vous plaît aidez-moi à trouver une meilleure solution comme un code ou d'un lien ou tout simplement moi directement.
La solution
Pour créer l'impression Out, vous devrez écrire à votre PrintDocument en utilisant GDI. Il n'y a rien vraiment construit. Vous pourriez peut-être faire une capture d'écran (code ci-dessous).
Exporter des données au format CSV est préférable de faire votre propre bien. Il suffit de créer / Ouvrir un flux de fichiers et d'écrire tout ce que vous voulez le.
Capture d'écran: Nécessite PInvoke à BitBlt et 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;
}
[Mise à jour]:
-
Si vous voulez que l'image enregistrée à un endroit particulier, envoyer le chemin complet avec le nom du fichier (à savoir
\\Windows\Temp\screenShot.png
). -
Si vous voulez exclure les contrôles, réduire le
this.Width
,this.Height
,this.Left
etthis.Right
jusqu'à ce que vous avez la taille qui correspond à la région qui fonctionne. -
Enfin, si vous voulez que le
Bitmap
à utiliser dans la mémoire, il suffit de l'enregistrer et l'utiliser au besoin. Exemple:panel1.Image = ScreenCapture ( "image.png"); panel1.BringToFront ();
L'espoir qui aide.