У меня есть следующая таблица данных:
rowNR
L1
L2
L3
L4
row1
Листинг1
Листинг2
Листинг 3
Листинг 4
row2Объявление 1
Листинг 2
Листинг 3
Листинг 4
row3
Листинг1
Листинг2
Листинг3
Листинг 4
row4
Листинг 1Листинг 2
Листинг 3
Листинг 4
row5
Листинг 1
Листинг 2
Листинг 3
Листинг 4
Я хотел бы распечатать каждую ячейку «Список» из каждой строки на новую страницу.пример: страница 1 - Листинг1(строка1), страница2 - Листинг2(строка1)...поэтому в приведенном выше примере мне понадобится 20 страниц.
**Проблема в следующем: ** Номер страницы становится бесконечным. и никогда не останавливается.
Мой код выглядит так:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
var doc = sender as PrintDocument;
var curX = e.MarginBounds.X + 11;
var curY = e.MarginBounds.Y + 11;
Pen pen = new Pen(ColorTranslator.FromHtml("#FFBD2D"), 1f);
int checkedrows = 0;
int sum = 0;
using (var fontNormal = new System.Drawing.Font("Arial", 8))
using (var sf = new StringFormat())
{
sf.Alignment = sf.LineAlignment = StringAlignment.Center;
int itemHeight = (int)fontNormal.GetHeight(e.Graphics) + 1;
for (int row = x; row < dt.Rows.Count; row++)
{
for (int j = y; j < dt.Columns.Count; j++)
{
if (x != row || y != j)
{
x = row;
y = j;
e.HasMorePages = true;
return;
}
else
{
if ("Listing1" == dt.Columns[j].ColumnName || "Listing2" == dt.Columns[j].ColumnName || "Listing3" == dt.Columns[j].ColumnName || "Listing4" == dt.Columns[j].ColumnName)
{
if (dt.Rows[row][j].ToString() == "")
continue;
var imgRect = new Rectangle(0, 0, 160, 160);
var labelRect = new Rectangle(
imgRect.Right,
imgRect.Bottom,
imgRect.Width,
itemHeight);
using (var qrImage = Utils.QRCode.GenerateQRCODE(dt.Rows[row][j].ToString()))
e.Graphics.DrawImage(qrImage, imgRect);
e.Graphics.DrawLine(pen, curX, curY, curX, curY + 139);//||right
e.Graphics.DrawLine(pen, curX, curY, curX + 196, curY);// -up
e.Graphics.RotateTransform(90);
e.Graphics.DrawString(dt.Rows[row][j].ToString(),
fontNormal, Brushes.Black,
labelRect, sf);
e.Graphics.ResetTransform();
//curX = imgRect.Right; //+ 30
e.HasMorePages = false;
}
}
}
}
}
refreshprintbtn.Enabled = true;
groupBox1.Text = "QR CODE | Codes: " + checkedrows + " / " + sum;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -every-row
Печать 4 ячеек из каждой строки ⇐ C#
Место общения программистов C#
1733259036
Anonymous
У меня есть следующая таблица данных:
rowNR
L1
L2
L3
L4
row1
Листинг1
Листинг2
Листинг 3
Листинг 4
row2Объявление 1
Листинг 2
Листинг 3
Листинг 4
row3
Листинг1
Листинг2
Листинг3
Листинг 4
row4
Листинг 1Листинг 2
Листинг 3
Листинг 4
row5
Листинг 1
Листинг 2
Листинг 3
Листинг 4
Я хотел бы распечатать каждую ячейку «Список» из каждой строки на новую страницу.пример: страница 1 - Листинг1(строка1), страница2 - Листинг2(строка1)...поэтому в приведенном выше примере мне понадобится 20 страниц.
**Проблема в следующем: ** Номер страницы становится бесконечным. и никогда не останавливается.
Мой код выглядит так:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
var doc = sender as PrintDocument;
var curX = e.MarginBounds.X + 11;
var curY = e.MarginBounds.Y + 11;
Pen pen = new Pen(ColorTranslator.FromHtml("#FFBD2D"), 1f);
int checkedrows = 0;
int sum = 0;
using (var fontNormal = new System.Drawing.Font("Arial", 8))
using (var sf = new StringFormat())
{
sf.Alignment = sf.LineAlignment = StringAlignment.Center;
int itemHeight = (int)fontNormal.GetHeight(e.Graphics) + 1;
for (int row = x; row < dt.Rows.Count; row++)
{
for (int j = y; j < dt.Columns.Count; j++)
{
if (x != row || y != j)
{
x = row;
y = j;
e.HasMorePages = true;
return;
}
else
{
if ("Listing1" == dt.Columns[j].ColumnName || "Listing2" == dt.Columns[j].ColumnName || "Listing3" == dt.Columns[j].ColumnName || "Listing4" == dt.Columns[j].ColumnName)
{
if (dt.Rows[row][j].ToString() == "")
continue;
var imgRect = new Rectangle(0, 0, 160, 160);
var labelRect = new Rectangle(
imgRect.Right,
imgRect.Bottom,
imgRect.Width,
itemHeight);
using (var qrImage = Utils.QRCode.GenerateQRCODE(dt.Rows[row][j].ToString()))
e.Graphics.DrawImage(qrImage, imgRect);
e.Graphics.DrawLine(pen, curX, curY, curX, curY + 139);//||right
e.Graphics.DrawLine(pen, curX, curY, curX + 196, curY);// -up
e.Graphics.RotateTransform(90);
e.Graphics.DrawString(dt.Rows[row][j].ToString(),
fontNormal, Brushes.Black,
labelRect, sf);
e.Graphics.ResetTransform();
//curX = imgRect.Right; //+ 30
e.HasMorePages = false;
}
}
}
}
}
refreshprintbtn.Enabled = true;
groupBox1.Text = "QR CODE | Codes: " + checkedrows + " / " + sum;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79248364/printing-4-cells-from-every-row[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия