Я хочу напечатать несколько штрих-кодов нескольких предметов на странице построчно.Я написал некоторый код, который имеет некоторые основные настройки в соответствии с координатами X, Y, который работает нормально.но проблема в том, что печатаемые штрих-коды заканчиваются из бумаги, как вы можете видеть на картинке ниже,

, как вы можете видеть на картинке выше,последний штрих-код Обрезает их правую сторону и не имеет полной ширины, а также, если у нас есть 100 элементов, тогда мой код просто печатает 5 штрих-кодов, а остальные пропускаются.Пожалуйста, расскажите, как распечатать все штрих-коды из 100 наименований на странице построчно.
pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(this.PrintBarcodeEvent_PrintPage);
System.Windows.Forms.PrintDialog pdd = new System.Windows.Forms.PrintDialog();
pdd.Document = pd;
System.Windows.Forms.DialogResult result = pdd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
System.Windows.Forms.PrintPreviewDialog pp = new System.Windows.Forms.PrintPreviewDialog();
pp.Document = pd;
result = pp.ShowDialog();
//pd.Print();
}
EventHandler:
// The PrintPage event is raised for each page to be printed.
private void PrintBarcodeEvent_PrintPage(object sender, PrintPageEventArgs e)
{
int startX = 5;
int startY = 5;
Database db = new Database();
db.DBOpen();
for (int i = 0; i < listTobePrint.Count; i++)
{
String code = listTobePrint[i].Code;
String name = db.GetByValue(Database.TABLE_ITEMS, Database.CODE_ITEMS, code, 2);
String price = db.GetByValueForInt(Database.TABLE_ITEMS, Database.CODE_ITEMS, code, 8);
Font printFont = new Font("Arial", 10.0f);
e.Graphics.DrawString("Phulkari by VIRSA", printFont, System.Drawing.Brushes.Black,
startX, startY, new StringFormat());
int x2 = startX + 3;
int y2 = startY + 15;
e.Graphics.DrawImage(Util.ImageWpfToGDI(Util.GenerateBarcode(code)), x2, y2, 100, 50);
int x3 = startX;
int y3 = y2 + 50;
e.Graphics.DrawString(code, printFont, System.Drawing.Brushes.Black,
x3, y3, new StringFormat());
int x4 = startX;
int y4 = y3 + 15;
e.Graphics.DrawString(name, printFont, System.Drawing.Brushes.Black,
x4, y4, new StringFormat());
int x5 = startX;
int y5 = y4 + 15;
e.Graphics.DrawString("Rs." + price, printFont, System.Drawing.Brushes.Black,
x5, y5, new StringFormat());
startX += 150;
//startY += 100;
}
db.DBClose();
}
Примечание. В приведенном выше коде Util.ImageWpfToGDI(Util.GenerateBarcode(code)), x2, y2, 100, 50
этот фрагмент кода будет генерировать штрих-код.