Сейчас мы разрабатываем игру жанра TD и приостановились из-за работ (семьи же нужно кормить) потому решили найти инвестиции для того, что-бы отвязаться от работ и продолжить разработку 24/7. На разработку необходимо 8 600$.
Имеется вся необходимая документация (как для разработки, так и для инвестора) и небольшая техно демка.
internal static string SelectPrinter()
{
System.Windows.Forms.PrintDialog prntDlg = new System.Windows.Forms.PrintDialog();
if (prntDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if (prntDlg.PrinterSettings.IsValid)
return prntDlg.PrinterSettings.PrinterName;
}
return "";
}
internal static string GetPort(string printerName)
{
var devices = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\Devices"); //Read-accessible even when using a locked-down account
try
{
foreach (string name in devices.GetValueNames())
{
if (name == printerName)
{
var value = (String)devices.GetValue(name);
var port = Regex.Match(value, @"(,\w+:)", RegexOptions.IgnoreCase).Value;
port = port.Replace(",", "");
return port;
}
}
}
catch
{
throw;
}
return "";
}
internal static string GetActivePrinter()
{
string printer = SelectPrinter();
if (printer != "")
{
string port = GetPort(printer);
if (port != "")
return printer + " (" + port + ")";
else
return "";
}
else
return "";
}
internal static void PrintExcelSheet(Excel.Application app, Excel.Worksheet sheet, String activePrinter)
{
try
{
app.ActivePrinter = activePrinter;
sheet.PrintOutEx();
}
catch (Exception e)
{
Console.WriteLine("Print error:\r\n" + e.Message);
}
}
string printerName = GetActivePrinter();
if (printerName != "")
{
Console.WriteLine("Menu send to printer: " + printerName);
PrintExcelSheet(xlApp, xlWorkSheet, printerName);
}
a {
display: block; (или inline-block, попробуйте и так и так)
width: 120px;
height: 40px;
padding: 10px 20px;
background-color: фиолетовый цвет;
}
a img {
display: none;
width: 100%;
}
a:hover img {
display: block;
}
void ToExcel(DataTable dt1)
{
try
{
Excel.Application EoXL;
Excel._Workbook EoWB;
Excel._Worksheet EoSheet;
Excel.Range excelRange;
EoXL = new Excel.Application();
EoXL.Visible = false;
EoWB = EoXL.Workbooks.Add(Type.Missing);
int TabRows = 1;
EoSheet = (Excel.Worksheet)EoWB.Worksheets.get_Item(1);//ссылка на лист excel
EoSheet.Name = "Отчет о кодах возвратных накладных";
EoSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
int row = dt1.Rows.Count;
int col = dt1.Columns.Count;
EoSheet.Cells[1, 1] = "Префиксы возвратных накладных и счетов фактур подразделений";
EoSheet.Cells[1, 1].VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
EoSheet.Cells[1, 1].Font.Bold = true;
EoSheet.Cells[1, 1].Font.Size = 16;
// передаем первую таблицу, заполняем ее в памяти и передаем целиком
object[,] dataExport = new object[row, col];
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
dataExport[i, j] = dt1.Rows[i][j];
}
}
excelRange = EoSheet.Range[EoSheet.Cells[2 + TabRows, 1], EoSheet.Cells[row + 1 + TabRows, col]];
excelRange.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, dataExport);
excelRange.Borders.ColorIndex = 0;
//этот кусок в качестве примера указания типа данных в ячейках
// excelRange = EoSheet.Range[EoSheet.Cells[2 + TabRows, 8], EoSheet.Cells[row + 1 + TabRows, 10]];
// excelRange.NumberFormat = "#,##0.00";
// формируем заголовок
ArrayList displayColumnExsel = new ArrayList();
foreach (DataColumn c in dt1.Columns)
{
displayColumnExsel.Add(c.ColumnName);
}
object[] dataExportH = new object[col];
for (int i = 0; i < col; i++)
dataExportH[i] = displayColumnExsel[i];
excelRange = EoSheet.Range[EoSheet.Cells[1 + TabRows, 1], EoSheet.Cells[1 + TabRows, col]];
excelRange.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, dataExportH);
excelRange.Font.Bold = true;
excelRange.WrapText = true;
excelRange.Borders.ColorIndex = 0;
excelRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
excelRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
EoXL.Visible = true;
}
catch (Exception er)
{
MessageBox.Show(er.Message, "Ошибка метода переноса таблиц", MessageBoxButton.OK, MessageBoxImage.Error);
}
}