Печать и экспорт на USB (формат файла: XML / CSV / Excel) Функциональность в приложении Smart device [Symbo Motoroal MC75 (Windows Mobile 6.1)]? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть форма, которая содержит поля со списком, текстовые поля и сетку данных со многими строками. Я хочу распечатать (со сгенерированным штрих-кодом [приложение, генерирующее штрих-код как изображение]), а также хочу экспортировать данные на этой странице в формате CSV / XML / Excel на USB или в физический каталог телефона. Пожалуйста, покажите мне, как это сделать. Это мое первое приложение для Windows Mobile. Я не такой мудрый в Windows Mobile. Пожалуйста, помогите мне найти лучшее решение в виде кода или ссылки или просто направьте меня.

1 Ответ

0 голосов
/ 19 октября 2011

Чтобы создать Распечатку, вы должны будете написать в свой PrintDocument, используя GDI. В действительности нет ничего встроенного. Вы могли бы сделать снимок экрана (код ниже).

Экспорт данных в CSV лучше всего выполнять самостоятельно. Просто создайте / откройте поток файлов и запишите в него все, что вы хотите.

Снимок экрана: требуется PInvoke для BitBlt и 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;
}

[Update]:

  • Если вы хотите, чтобы изображение сохранялось в определенном месте, отправьте полный путь с именем файла (т.е. \\Windows\Temp\screenShot.png).

  • Если вы хотите исключить элементы управления, уменьшайте this.Width, this.Height, this.Left и this.Right до тех пор, пока не получите размер, соответствующий области, которая работает.

  • В заключение, если вы хотите, чтобы Bitmap использовал в памяти, просто сохраните его и используйте по мере необходимости. Пример: * +1028 *

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

Надеюсь, это поможет.

...