многократная печать с одним и тем же изображением - PullRequest
2 голосов
/ 22 мая 2011

У меня есть изображение и текстовое поле.пользователь вводит в текстовое поле количество копий (N) и нажимает кнопку «Печать».Принтер печатает фотографию N раз (3 фотографии на странице, одна под другой).

Привет, ты бы сделал что-нибудь подобное?Нужно ли мне сначала создать страницу Silverlight?

Ответы [ 2 ]

0 голосов
/ 27 мая 2011

Silverlight имеет очень простой в использовании API печати. Я недавно использовал его и узнал, как это сделать, используя учебник Melodatron, указанный в списке, и этот на сайте Visiblox . Это специфично для их библиотеки графиков, но я все же нашел ее очень полезной.

Я предполагаю, что у вас есть только 1 изображение для печати здесь, дайте мне знать, если у вас есть еще. Во-первых, вам нужно настроить сетку или что-то подобное, чтобы поместить ваши фотографии. Вам понадобится N строк в этой сетке. Вы должны будете сделать это в коде, поскольку у вас есть определенное количество строк, которые вы хотите создать, но это может быть легко достигнуто чем-то вроде этого:

Grid grid = new Grid();

// Set the column and row definitions
for (int i = 0; i < Number of rows; i++)
{
    grid.RowDefinitions.Add(new RowDefinition()); 
}

Это должно настроить вашу сетку, которая вам нужна. После того, как у вас есть сетка, вам нужно заполнить ее имеющимися изображениями. Это довольно просто, единственная проблема будет в том, что ваше изображение не может быть использовано несколько раз - то есть уже имеющееся изображение может появиться в сетке только один раз. Вам придется дублировать его, чтобы разместить его на сетке несколько раз. Я не уверен, как вы создаете свои изображения, но вы могли бы создать новое изображение на основе исходного пути существующего изображения? Есть нить о том, как это сделать здесь . Вам нужно будет предоставить более подробную информацию, если вам нужна помощь в этом.

// Set the column and row definitions
for (int i = 0; i < Number of rows; i++)
{
    // Duplicate your existing image here.
    Image image = new Image();
    grid.Children.Add(image);
    Grid.SetRow(image, i);
}

Весь код выше должен быть в этом методе:

private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
     //Code from above...

     e.PageVisual = grid;
}

В обработчике события кнопки, в котором вы хотите распечатать, сделайте следующее:

private void Button_Click(object sender, RoutedEventArgs e)
{
     PrintDocument printDocument = new PrintDocument();
     printDocument.PrintPage +=  new EventHandler<PrintPageEventArgs>(printDocument_PrintPage);
     printDocument.Print("TITLE");
}

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

0 голосов
/ 25 мая 2011

Есть довольно хороший учебник (ссылка ниже) с примером и исходным кодом по продвинутым методам печати в Silverlight.Вам нужно будет создать макет как пользовательский элемент управления, который не должен быть таким сложным, но вам не нужно его отображать.

http://www.silverlightshow.net/items/Advanced-printing-in-Silverlight-4.aspx

Надеюсь, это поможет вам начать работуправильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...