none
Stampare il numero di pagina corrrente/totale in PrintDialog RRS feed

  • Domanda

  • Ciao a tutti,

    WPF c# 

     sto creando n documento  con FlowDocument per mandarlo in stampa con PrintDialog,

    con intestazione a piè di pagina

    avrei bisogno di stampare il numero di pagina su ogni pagina stampata (es. 2/20...etc)

    nel documento ho u Header Lista elementi  e Footer

    vorrei mettere il numero di pagina nel footer

    qualcuno potrebbe darmi qualche suggerimento ?

    grazie  


    fabio miceli

    venerdì 24 aprile 2020 23:32

Risposte

  • Per vedere se dipende dal tuo codice, fai stampare un FlowDocument più semplice, una sola pagina con un rettangolo (vuoto) delle dimensioni del foglio meno un pò di margine.
    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:44
    giovedì 14 maggio 2020 12:51
  • come mai se imposto questi margini di stampa su carta:

     fd.PagePadding = new Thickness(50, 40, 0, 0);

    su pdf azzera il margine destro?


    fabio miceli

    Probabilmente perché il terzo parametro, Right, è zero.
    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:44
    venerdì 15 maggio 2020 15:52
  • ma come mai se imposto left  50 e right a 25 lo centra ??

    non dovrebbe darlo decentrato ?

    se io non imposto per niente il PagePadding non lo centra automaticamente sulla pagina ?


    fabio miceli

    Ma stai parlando del rettangolo di prova che ti avevo consigliato? Considera che gli hai dato un'ampiezza approssimativa, mi pare fosse 730. Quei numeri avevano lo scopo di capire cosa stesse succedendo, ma alla fine dovrai farti tornare i conti con i valori del PrintDialog, altrimenti dovrai modificare il programma per ogni stampante che usi.

    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:43
    venerdì 15 maggio 2020 18:03

Tutte le risposte

  • Ciao a tutti,

    WPF c# 

     sto creando n documento  con FlowDocument per mandarlo in stampa con PrintDialog,

    con intestazione a piè di pagina

    avrei bisogno di stampare il numero di pagina su ogni pagina stampata (es. 2/20...etc)

    nel documento ho u Header Lista elementi  e Footer

    vorrei mettere il numero di pagina nel footer

    qualcuno potrebbe darmi qualche suggerimento ?

    grazie  


    fabio miceli

    Se il paginator di default non supporta header e footer dovrai creartene uno ad hoc, derivandolo dalla classe DocumentPaginator. In questo modo, però, dovrai implementare tutto ciò che il paginator di default già contiene. Se non si può derivare dal paginator di default, si può incorporarlo in un nuovo paginator facendo da ponte.

    Quindi crei una classe TuoPaginator alla quale passi il paginator di default del FlowDocument e alla funzione di stampa, invece di passare il paginator di default, passi un'instanza di TuoPaginator.

    Qui mostra un esempio (la classe DocumentPaginatorWrapper è quella che ti ho indicato come TuoPaginator):
     
    https://docs.microsoft.com/en-us/archive/blogs/fyuan/convert-xaml-flow-document-to-xps-with-style-multiple-page-page-size-header-margin

    domenica 26 aprile 2020 06:27
  • Ciao BlueLed,

    ho risolto.

    però ho riscontrato un'altro problema:

    Quando mando in stampa su stampante formato solo A4 nessun problema, stampa correttamente rispettando i margini, così anche se mando in stampa su pdf.

    Ma se stampo su una stampante formato A3, con carta A4 e settando le proprietà  della stampante su verticale

    il layout lo stampa tutto spostato tutto a sinistra della pagina, non rispettando i margini verticali; in sostanza il margine lo mette tutto a destra della pagina.

    potresti aiutarmi a capire dove sbaglio ?

    Questo è il codice con cui mando in stampa:

                 if (FurnirurePrintList.Count > 0) { 
    
                FlowDocument fd = PrintDDT();
                PrintdDDT = new System.Windows.Controls.PrintDialog();
    
                 ScrollViewer.SetVerticalScrollBarVisibility(lv_Elements, ScrollBarVisibility.Hidden);
    
                    if ((bool)PrintdDDT.ShowDialog().GetValueOrDefault())
                    {
                      
                        PrintDialog pd = new PrintDialog();
                        pd.PrintTicket.PageOrientation = PageOrientation.Portrait;
                        fd.PageHeight = pd.PrintableAreaHeight;
                        fd.PageWidth = pd.PrintableAreaWidth;
                        fd.PagePadding = new Thickness(50);
                        fd.ColumnGap = 0;
     
                        fd.ColumnWidth = pd.PrintableAreaWidth;
    
    
                        IDocumentPaginatorSource dps = fd;
                         pd.PrintDocument(dps.DocumentPaginator, "Print DDT");
    
                     }
    
    

    La pagina lo creata ad hoc, sua heade, listar e footer.

    Sarebbe questa.....un po lunga...non so se ho fatto nel modo corretto......

    private FlowDocument PrintDDT() { int _radius = 4; bool onepage = false; int split_pages = 26; int total_pages = FurnirurePrintList.Count; //80; List<DDT> ddts = new List<DDT>(); foreach(var itm in FurnirurePrintList) { DDT ddt = new DDT { Code = itm.CompleteCode, Description = itm.Description, Unit = itm.Unit, Quantity = itm.Quantity == 0 ? "" : itm.Quantity.ToString(), Numero = "C00" + itm.FurnitureCode, Note = "Armadio " + itm.Description }; ddts.Add(ddt); } int tpage = 0; for (int i = 0; i < ddts.Count; i += split_pages) { tpage++; } int diff = ((split_pages * tpage) - total_pages); if ((total_pages) <= split_pages) onepage = true; if (diff > 0) { int addnumber = ddts.Count; for (int x = 1; x <= diff; x++) { addnumber++; DDT ddt = new DDT { Code = "", Description = "", Unit = "", Quantity = "", Numero = "", Note = "" }; ddts.Add(ddt); } } int count = 0; int tot = 0; //var column1TemplateLabel = new FrameworkElementFactory(typeof(Label)); //column1TemplateLabel.SetValue(FontSizeProperty, 2d); //column1TemplateLabel.SetValue(DockPanel.DockProperty, Dock.Left); //var column1Template = new FrameworkElementFactory(typeof(DockPanel)); //column1Template.AppendChild(column1TemplateLabel); //CellTemplate = new DataTemplate { VisualTree = column1Template } FlowDocument doc = new FlowDocument(); for (int i = 0; i < ddts.Count; i += split_pages) { var list = (from c in ddts select c).Skip(i).Take(split_pages); ListView l = new ListView(); l.FontSize = 12; ScrollViewer.SetVerticalScrollBarVisibility(l, ScrollBarVisibility.Hidden); ScrollViewer.SetHorizontalScrollBarVisibility(l, ScrollBarVisibility.Hidden); l.ItemsSource = list; GridView g = new GridView(); GridViewColumn firstNameColumn = new GridViewColumn() { Header = "Codice Prodotto", DisplayMemberBinding = new Binding("Code"), Width = 120, }; GridViewColumn lastNameColumn = new GridViewColumn() { Header = "Descrizione delle merce", DisplayMemberBinding = new Binding("Description"), Width = 460, }; GridViewColumn treeNameColumn = new GridViewColumn() { Header = "U.M.", DisplayMemberBinding = new Binding("Unit"), Width = 50, }; GridViewColumn quattroNameColumn = new GridViewColumn() { Header = "Quantità", DisplayMemberBinding = new Binding("Quantity"), Width = 50, }; g.Columns.Add(firstNameColumn); g.Columns.Add(lastNameColumn); g.Columns.Add(treeNameColumn); g.Columns.Add(quattroNameColumn); l.View = g; count++; InlineUIContainer inlineContainer = new InlineUIContainer(); inlineContainer.Child = l; Section customerReports = new Section(); Grid gridHeader = new Grid(); ColumnDefinition columnDefinition1 = new ColumnDefinition(); ColumnDefinition columnDefinition2 = new ColumnDefinition(); ColumnDefinition columnDefinition3 = new ColumnDefinition(); columnDefinition1.Width = new GridLength(340); columnDefinition2.Width = new GridLength(10); columnDefinition3.Width = new GridLength(340); gridHeader.ColumnDefinitions.Add(columnDefinition1); gridHeader.ColumnDefinitions.Add(columnDefinition2); gridHeader.ColumnDefinitions.Add(columnDefinition3); RowDefinition rowDefinition1 = new RowDefinition(); RowDefinition rowDefinition2 = new RowDefinition(); RowDefinition rowDefinition3 = new RowDefinition(); RowDefinition rowDefinition4 = new RowDefinition(); RowDefinition rowDefinition5 = new RowDefinition(); RowDefinition rowDefinition6 = new RowDefinition(); RowDefinition rowDefinition7 = new RowDefinition(); RowDefinition rowDefinition8 = new RowDefinition(); RowDefinition rowDefinition9 = new RowDefinition(); RowDefinition rowDefinition10 = new RowDefinition(); RowDefinition rowDefinition11 = new RowDefinition(); RowDefinition rowDefinition12 = new RowDefinition(); RowDefinition rowDefinition13 = new RowDefinition(); RowDefinition rowDefinition14 = new RowDefinition(); RowDefinition rowDefinition15 = new RowDefinition(); RowDefinition rowDefinition16 = new RowDefinition(); RowDefinition rowDefinition17 = new RowDefinition(); rowDefinition1.Height = new GridLength(20); rowDefinition2.Height = new GridLength(17); rowDefinition3.Height = new GridLength(17); rowDefinition4.Height = new GridLength(17); rowDefinition5.Height = new GridLength(17); rowDefinition6.Height = new GridLength(20); rowDefinition7.Height = new GridLength(17); rowDefinition8.Height = new GridLength(17); rowDefinition9.Height = new GridLength(17); rowDefinition10.Height = new GridLength(17); rowDefinition11.Height = new GridLength(17); rowDefinition12.Height = new GridLength(17); rowDefinition13.Height = new GridLength(17); rowDefinition14.Height = new GridLength(34); rowDefinition15.Height = new GridLength(0); rowDefinition16.Height = new GridLength(34); rowDefinition17.Height = new GridLength(0); gridHeader.RowDefinitions.Add(rowDefinition1); gridHeader.RowDefinitions.Add(rowDefinition2); gridHeader.RowDefinitions.Add(rowDefinition3); gridHeader.RowDefinitions.Add(rowDefinition4); gridHeader.RowDefinitions.Add(rowDefinition5); gridHeader.RowDefinitions.Add(rowDefinition6); gridHeader.RowDefinitions.Add(rowDefinition7); gridHeader.RowDefinitions.Add(rowDefinition8); gridHeader.RowDefinitions.Add(rowDefinition9); gridHeader.RowDefinitions.Add(rowDefinition10); gridHeader.RowDefinitions.Add(rowDefinition11); gridHeader.RowDefinitions.Add(rowDefinition12); gridHeader.RowDefinitions.Add(rowDefinition13); gridHeader.RowDefinitions.Add(rowDefinition14); gridHeader.RowDefinitions.Add(rowDefinition15); gridHeader.RowDefinitions.Add(rowDefinition16); gridHeader.RowDefinitions.Add(rowDefinition17); double left = 4, top = 2, right = 2, bottom = 2; Border myBorder_Trasparent = new Border(); myBorder_Trasparent.Background = new SolidColorBrush(Color.FromArgb(255, 200, 200, 200)); myBorder_Trasparent.BorderBrush = Brushes.Black; myBorder_Trasparent.BorderThickness = new Thickness(1); myBorder_Trasparent.CornerRadius = new CornerRadius(_radius); Border myBorder_Trasparent2 = new Border(); //myBorder_Trasparent2.Background = Brushes.LightGray; myBorder_Trasparent2.BorderBrush = Brushes.Black; myBorder_Trasparent2.BorderThickness = new Thickness(1); myBorder_Trasparent2.CornerRadius = new CornerRadius(_radius); Border myBorder_Trasparent3 = new Border(); myBorder_Trasparent3.Background = Brushes.Transparent; myBorder_Trasparent3.BorderBrush = Brushes.Black; myBorder_Trasparent3.BorderThickness = new Thickness(1); myBorder_Trasparent3.CornerRadius = new CornerRadius(0); Border myBorder1 = new Border(); myBorder1.Background = Brushes.Transparent; myBorder1.BorderBrush = Brushes.Black; myBorder1.BorderThickness = new Thickness(0); Border myBorder2 = new Border(); //myBorder2.Background = Brushes.SkyBlue; myBorder2.BorderBrush = Brushes.Black; myBorder2.BorderThickness = new Thickness(0); Border myBorder3 = new Border(); //myBorder3.Background = Brushes.SkyBlue; myBorder3.BorderBrush = Brushes.Black; myBorder3.BorderThickness = new Thickness(0); Border myBorder4 = new Border(); //myBorder4.Background = Brushes.SkyBlue; myBorder4.BorderBrush = Brushes.Black; myBorder4.BorderThickness = new Thickness(0); Border myBorder5 = new Border(); //myBorder5.Background = Brushes.SkyBlue; myBorder5.BorderBrush = Brushes.Black; myBorder5.BorderThickness = new Thickness(0); Border myBorder6 = new Border(); //myBorder6.Background = Brushes.SkyBlue; myBorder6.BorderBrush = Brushes.Black; myBorder6.BorderThickness = new Thickness(0); Border myBorder7 = new Border(); //myBorder7.Background = Brushes.SkyBlue; myBorder7.BorderBrush = Brushes.Black; myBorder7.BorderThickness = new Thickness(0); Border myBorder8 = new Border(); //myBorder8.Background = Brushes.SkyBlue; myBorder8.BorderBrush = Brushes.Black; myBorder8.BorderThickness = new Thickness(0); Border myBorder9 = new Border(); //myBorder9.Background = Brushes.SkyBlue; myBorder9.BorderBrush = Brushes.Black; myBorder9.BorderThickness = new Thickness(0); Border myBorder10 = new Border(); //myBorder10.Background = Brushes.SkyBlue; myBorder10.BorderBrush = Brushes.Black; myBorder10.BorderThickness = new Thickness(0); Border myBorder11 = new Border(); //myBorder11.Background = Brushes.SkyBlue; myBorder11.BorderBrush = Brushes.Black; myBorder11.BorderThickness = new Thickness(0); Border myBorder12 = new Border(); //myBorder12.Background = Brushes.SkyBlue; myBorder12.BorderBrush = Brushes.Black; myBorder12.BorderThickness = new Thickness(0); Border myBorder13 = new Border(); //myBorder13.Background = Brushes.SkyBlue; myBorder13.BorderBrush = Brushes.Black; myBorder13.BorderThickness = new Thickness(0); Border myBorder14 = new Border(); //myBorder14.Background = Brushes.SkyBlue; myBorder14.BorderBrush = Brushes.Black; myBorder14.BorderThickness = new Thickness(0); Border myBorder15 = new Border(); //myBorder15.Background = Brushes.SkyBlue; myBorder15.BorderBrush = Brushes.Black; myBorder15.BorderThickness = new Thickness(0); Border myBorder16 = new Border(); //myBorder16.Background = Brushes.SkyBlue; myBorder16.BorderBrush = Brushes.Black; myBorder16.BorderThickness = new Thickness(0); Border myBorder17 = new Border(); //myBorder17.Background = Brushes.SkyBlue; myBorder17.BorderBrush = Brushes.Black; myBorder17.BorderThickness = new Thickness(0); Border myBorder18 = new Border(); //myBorder18.Background = Brushes.SkyBlue; myBorder18.BorderBrush = Brushes.Black; myBorder18.BorderThickness = new Thickness(0); Border myBorder19 = new Border(); //myBorder19.Background = Brushes.SkyBlue; myBorder19.BorderBrush = Brushes.Black; myBorder19.BorderThickness = new Thickness(0); Border myBorder20 = new Border(); //myBorder20.Background = Brushes.SkyBlue; myBorder20.BorderBrush = Brushes.Black; myBorder20.BorderThickness = new Thickness(0); Border myBorder211 = new Border(); //myBorder211.Background = Brushes.SkyBlue; myBorder211.BorderBrush = Brushes.Black; myBorder211.BorderThickness = new Thickness(0); Border myBorder212 = new Border(); //myBorder212.Background = Brushes.SkyBlue; myBorder212.BorderBrush = Brushes.Black; myBorder212.BorderThickness = new Thickness(0); Border myBorder213 = new Border(); //myBorder213.Background = Brushes.SkyBlue; myBorder213.BorderBrush = Brushes.Black; myBorder213.BorderThickness = new Thickness(0); Border myBorder214 = new Border(); //myBorder214.Background = Brushes.SkyBlue; myBorder214.BorderBrush = Brushes.Black; myBorder214.BorderThickness = new Thickness(0); Border myBorder215 = new Border(); //myBorder215.Background = Brushes.SkyBlue; myBorder215.BorderBrush = Brushes.Black; myBorder215.BorderThickness = new Thickness(0); Border myBorder216 = new Border(); //myBorder216.Background = Brushes.SkyBlue; myBorder216.BorderBrush = Brushes.Black; myBorder216.BorderThickness = new Thickness(0); //double left = 4, top = 2, right = 2, bottom = 2; //********** Border myBorder217 = new Border(); myBorder217.Background = Brushes.Transparent; myBorder217.BorderBrush = Brushes.Black; myBorder217.Height = 17; myBorder217.BorderThickness = new Thickness(1, 1, 1, 0); //Border myBorder218 = new Border(); //myBorder218.Background = Brushes.SkyBlue; //myBorder218.BorderBrush = Brushes.Black; //myBorder218.BorderThickness = new Thickness(0); Border myBorder219 = new Border(); myBorder219.Background = Brushes.Transparent; myBorder219.BorderBrush = Brushes.Black; myBorder219.Height = 17; myBorder219.BorderThickness = new Thickness(1, 0, 1, 1); //********** Border myBorder220 = new Border(); //myBorder220.Background = Brushes.SkyBlue; myBorder220.BorderBrush = Brushes.Black; myBorder220.Height = 17; myBorder220.BorderThickness = new Thickness(0, 1, 1, 0); Border myBorder221 = new Border(); //myBorder221.Background = Brushes.SkyBlue; myBorder221.BorderBrush = Brushes.Black; myBorder221.Height = 17; myBorder221.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder222 = new Border(); //myBorder222.Background = Brushes.SkyBlue; myBorder222.BorderBrush = Brushes.Black; myBorder222.Height = 17; myBorder222.BorderThickness = new Thickness(0, 1, 1, 0); Border myBorder223 = new Border(); //myBorder223.Background = Brushes.SkyBlue; myBorder223.BorderBrush = Brushes.Black; myBorder223.Height = 17; myBorder223.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder224 = new Border(); //myBorder224.Background = Brushes.SkyBlue; myBorder224.BorderBrush = Brushes.Black; myBorder224.Height = 17; myBorder224.BorderThickness = new Thickness(0, 1, 1, 0); Border myBorder225 = new Border(); //myBorder224.Background = Brushes.SkyBlue; myBorder225.BorderBrush = Brushes.Black; myBorder225.Height = 17; myBorder225.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder226 = new Border(); //myBorder226.Background = Brushes.SkyBlue; myBorder226.BorderBrush = Brushes.Black; myBorder226.Height = 17; myBorder226.BorderThickness = new Thickness(0, 1, 1, 0); Border myBorder227 = new Border(); //myBorder227.Background = Brushes.SkyBlue; myBorder227.BorderBrush = Brushes.Black; myBorder227.Height = 17; myBorder227.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder228 = new Border(); myBorder228.Background = Brushes.Transparent; myBorder228.BorderBrush = Brushes.Black; myBorder228.Height = 17; myBorder228.BorderThickness = new Thickness(1, 0, 1, 0); Border myBorder229 = new Border(); myBorder229.Background = Brushes.Transparent; myBorder229.BorderBrush = Brushes.Black; myBorder229.Height = 17; myBorder229.BorderThickness = new Thickness(1, 0, 1, 1); //********** Border myBorder230 = new Border(); //myBorder230.Background = Brushes.SkyBlue; myBorder230.BorderBrush = Brushes.Black; myBorder230.Height = 17; myBorder230.BorderThickness = new Thickness(0, 0, 1, 0); Border myBorder231 = new Border(); //myBorder231.Background = Brushes.SkyBlue; myBorder231.BorderBrush = Brushes.Black; myBorder231.Height = 17; myBorder231.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder232 = new Border(); //myBorder232.Background = Brushes.SkyBlue; myBorder232.BorderBrush = Brushes.Black; myBorder232.Height = 17; myBorder232.BorderThickness = new Thickness(0, 0, 1, 0); Border myBorder233 = new Border(); //myBorder233.Background = Brushes.SkyBlue; myBorder233.BorderBrush = Brushes.Black; myBorder233.Height = 17; myBorder233.BorderThickness = new Thickness(0, 0, 1, 1); //********** Border myBorder234 = new Border(); //myBorder234.Background = Brushes.SkyBlue; myBorder234.BorderBrush = Brushes.Black; myBorder234.Height = 17; myBorder234.BorderThickness = new Thickness(0, 0, 1, 0); Border myBorder235 = new Border(); //myBorder235.Background = Brushes.SkyBlue; myBorder235.BorderBrush = Brushes.Black; myBorder235.Height = 17; myBorder235.BorderThickness = new Thickness(0, 0, 1, 1); //********** //double left = 4, top = 2, right = 2, bottom = 2; #region CEDENTE Button bt = new Button(); bt.Background = Brushes.Transparent; //bt.Content = FindResource("logo"); bt.Style = (Style)FindResource("bt_logo"); TextBlock txt_cedente_title = new TextBlock(); txt_cedente_title.FontSize = 14; txt_cedente_title.Text = "FCT ITALY DESIGN S.R.L:"; txt_cedente_title.Margin = new Thickness(left, top, right, bottom); txt_cedente_title.FontWeight = FontWeights.Bold; TextBlock txt_cedente_sede = new TextBlock(); txt_cedente_sede.Margin = new Thickness(left, top, right, bottom); txt_cedente_sede.FontSize = 12; TextBlock txt_cedente_via = new TextBlock(); txt_cedente_via.FontSize = 12; TextBlock txt_cedente_numero = new TextBlock(); txt_cedente_numero.FontSize = 12; TextBlock txt_cedente_cap = new TextBlock(); txt_cedente_cap.FontSize = 12; TextBlock txt_cedente_provincia = new TextBlock(); txt_cedente_provincia.FontSize = 12; TextBlock txt_cedente_citta = new TextBlock(); txt_cedente_citta.FontSize = 12; TextBlock txt_cedente_nazione = new TextBlock(); txt_cedente_nazione.FontSize = 12; TextBlock txt_cedente_partitaiva = new TextBlock(); txt_cedente_partitaiva.Margin = new Thickness(left, top, right, bottom); txt_cedente_partitaiva.FontSize = 12; TextBlock txt_cedente_email = new TextBlock(); txt_cedente_email.Margin = new Thickness(left, top, right, bottom); txt_cedente_email.Foreground = Brushes.Blue; txt_cedente_email.FontSize = 12; TextBlock txt_cedente_sitoweb = new TextBlock(); txt_cedente_sitoweb.Margin = new Thickness(left, top, right, bottom); txt_cedente_sitoweb.Foreground = Brushes.Blue; txt_cedente_sitoweb.FontSize = 12; TextBlock txt_concat5 = new TextBlock(); txt_concat5.Margin = new Thickness(left, top, right, bottom); txt_concat5.FontSize = 12; TextBlock txt_concat6 = new TextBlock(); txt_concat6.Margin = new Thickness(left, top, right, bottom); txt_concat6.FontSize = 12; TextBlock txt_concat7 = new TextBlock(); txt_concat7.Margin = new Thickness(left, top, right, bottom); txt_concat7.FontSize = 12; TextBlock txt_concat8 = new TextBlock(); txt_concat8.Margin = new Thickness(left, top, right, bottom); txt_concat8.FontSize = 12; txt_cedente_sede.Text = "Sede legale ed operativa "; txt_cedente_via.Text = "Zona Artigianale di Cerbara"; txt_cedente_numero.Text = "s.n.c."; txt_cedente_provincia.Text = "PU"; txt_cedente_cap.Text = "61038"; txt_cedente_citta.Text = "Terre Roveresche"; txt_cedente_nazione.Text = "Italy"; txt_cedente_partitaiva.Text = "C.F. E P.IVA 02592440412"; txt_cedente_email.Text = "amministrazione@fctitalydesign.it"; txt_cedente_sitoweb.Text = "www.fctitalydesign.it"; txt_concat5.Text = txt_cedente_via.Text + ", " + txt_cedente_numero.Text; txt_concat6.Text = txt_cedente_cap.Text + " " + txt_cedente_citta.Text + " (" + txt_cedente_provincia.Text + ") (" + txt_cedente_nazione.Text + ")"; txt_concat7.Text = "E-MAIL Uff.Amm.vo: " + txt_cedente_email.Text; txt_concat8.Text = "Web: " + txt_cedente_sitoweb.Text; #endregion #region DESTINAZIONE TextBlock DPR = new TextBlock(); DPR.FontSize = 10; DPR.HorizontalAlignment = HorizontalAlignment.Right; DPR.Text = "D.P.R. 472 del 14.08.1996 – D.P.R. 696 del 21.12.96"; TextBlock txt_destinazione_title = new TextBlock(); txt_destinazione_title.FontSize = 12; txt_destinazione_title.Text = "Destinazione:"; txt_destinazione_title.Margin = new Thickness(left, top, right, bottom); txt_destinazione_title.FontWeight = FontWeights.Bold; TextBlock txt_destinazione_ragionesociale = new TextBlock(); txt_destinazione_ragionesociale.Margin = new Thickness(left, top, right, bottom); txt_destinazione_ragionesociale.FontSize = 12; TextBlock txt_destinazione_via = new TextBlock(); txt_destinazione_via.FontSize = 12; TextBlock txt_destinazione_numero = new TextBlock(); txt_destinazione_numero.FontSize = 12; TextBlock txt_destinazione_cap = new TextBlock(); txt_destinazione_cap.FontSize = 12; TextBlock txt_destinazione_provincia = new TextBlock(); txt_destinazione_provincia.FontSize = 12; TextBlock txt_destinazione_citta = new TextBlock(); txt_destinazione_citta.FontSize = 12; TextBlock txt_destinazione_nazione = new TextBlock(); txt_destinazione_nazione.FontSize = 12; TextBlock txt_concat1 = new TextBlock(); txt_concat1.Margin = new Thickness(left, top, right, bottom); txt_concat1.FontSize = 12; TextBlock txt_concat2 = new TextBlock(); txt_concat2.Margin = new Thickness(left, top, right, bottom); txt_concat2.FontSize = 12; txt_destinazione_ragionesociale.Text = "ISA Super Yacht"; txt_destinazione_via.Text = "Via Del Lavoro"; txt_destinazione_numero.Text = "125"; txt_destinazione_provincia.Text = "AN"; txt_destinazione_cap.Text = "61032"; txt_destinazione_citta.Text = "Ancona"; txt_destinazione_nazione.Text = "Italy"; txt_concat1.Text = txt_destinazione_via.Text + ", " + txt_destinazione_numero.Text; txt_concat2.Text = txt_destinazione_cap.Text + " " + txt_destinazione_citta.Text + " (" + txt_destinazione_provincia.Text + ") (" + txt_destinazione_nazione.Text + ")"; #endregion #region DESTINATARIO TextBlock txt_destinatario_title = new TextBlock(); txt_destinatario_title.FontSize = 12; txt_destinatario_title.Text = "Destinatario:"; txt_destinatario_title.Margin = new Thickness(left, top, right, bottom); txt_destinatario_title.FontWeight = FontWeights.Bold; TextBlock txt_destinatario_ragionesociale = new TextBlock(); txt_destinatario_ragionesociale.Margin = new Thickness(left, top, right, bottom); txt_destinatario_ragionesociale.FontSize = 12; TextBlock txt_destinatario_via = new TextBlock(); txt_destinatario_via.FontSize = 12; TextBlock txt_destinatario_numero = new TextBlock(); txt_destinatario_numero.FontSize = 12; TextBlock txt_destinatario_cap = new TextBlock(); txt_destinatario_cap.FontSize = 12; TextBlock txt_destinatario_provincia = new TextBlock(); txt_destinatario_provincia.FontSize = 12; TextBlock txt_destinatario_citta = new TextBlock(); txt_destinatario_citta.FontSize = 12; TextBlock txt_destinatario_nazione = new TextBlock(); txt_destinatario_nazione.FontSize = 12; TextBlock txt_destinatario_concat3 = new TextBlock(); txt_destinatario_concat3.Margin = new Thickness(left, top, right, bottom); txt_destinatario_concat3.FontSize = 12; TextBlock txt_destinatario_concat4 = new TextBlock(); txt_destinatario_concat4.Margin = new Thickness(left, top, right, bottom); txt_destinatario_concat4.FontSize = 12; txt_destinatario_ragionesociale.Text = "Palumbo"; txt_destinatario_via.Text = "Via Vatrovala"; txt_destinatario_numero.Text = "48"; txt_destinatario_provincia.Text = "AN"; txt_destinatario_cap.Text = "90047"; txt_destinatario_citta.Text = "Roma"; txt_destinatario_nazione.Text = "Italy"; txt_destinatario_concat3.Text = txt_destinatario_via.Text + ", " + txt_destinatario_numero.Text; txt_destinatario_concat4.Text = txt_destinatario_cap.Text + " " + txt_destinatario_citta.Text + " (" + txt_destinatario_provincia.Text + ") (" + txt_destinatario_nazione.Text + ")"; #endregion #region CENTER HEADER RIGA 1 TextBlock txt_codicecliente_title = new TextBlock(); txt_codicecliente_title.FontSize = 12; txt_codicecliente_title.Height = 17; txt_codicecliente_title.FontWeight = FontWeights.Normal; txt_codicecliente_title.Text = "Codice Cliente"; txt_codicecliente_title.HorizontalAlignment = HorizontalAlignment.Center; txt_codicecliente_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_codicecliente = new TextBlock(); txt_codicecliente.Height = 17; txt_codicecliente.FontSize = 12; txt_codicecliente.FontWeight = FontWeights.Normal; txt_codicecliente.Text = ((Customer)CB_Destinatario.SelectedItem).CustomerCode; txt_codicecliente.HorizontalAlignment = HorizontalAlignment.Center; txt_codicecliente.VerticalAlignment = VerticalAlignment.Bottom; TextBlock txt_codicefiscale_title = new TextBlock(); txt_codicefiscale_title.FontSize = 12; txt_codicefiscale_title.Height = 17; txt_codicefiscale_title.FontWeight = FontWeights.Normal; txt_codicefiscale_title.Text = "Codice Fiscale"; txt_codicefiscale_title.HorizontalAlignment = HorizontalAlignment.Center; txt_codicefiscale_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_codicefiscale = new TextBlock(); txt_codicefiscale.FontSize = 12; txt_codicefiscale.Height = 17; txt_codicefiscale.FontWeight = FontWeights.Normal; txt_codicefiscale.Text = ((Customer)CB_Destinatario.SelectedItem).CodiceFiscale; txt_codicefiscale.HorizontalAlignment = HorizontalAlignment.Center; txt_codicefiscale.VerticalAlignment = VerticalAlignment.Bottom; TextBlock txt_partitaiva1_title = new TextBlock(); txt_partitaiva1_title.FontSize = 12; txt_partitaiva1_title.Height = 17; txt_partitaiva1_title.FontWeight = FontWeights.Normal; txt_partitaiva1_title.Text = "Partita iva"; txt_partitaiva1_title.HorizontalAlignment = HorizontalAlignment.Center; txt_partitaiva1_title.VerticalAlignment = VerticalAlignment.Top; TextBlock partitaiva1 = new TextBlock(); partitaiva1.FontSize = 12; partitaiva1.Height = 17; partitaiva1.FontWeight = FontWeights.Normal; partitaiva1.Text = ((Customer)CB_Destinatario.SelectedItem).PartitaIva; partitaiva1.HorizontalAlignment = HorizontalAlignment.Center; partitaiva1.VerticalAlignment = VerticalAlignment.Bottom; TextBlock txt_datadocumento_title = new TextBlock(); txt_datadocumento_title.FontSize = 12; txt_datadocumento_title.Height = 17; txt_datadocumento_title.FontWeight = FontWeights.Normal; txt_datadocumento_title.Text = "Data Documento"; txt_datadocumento_title.HorizontalAlignment = HorizontalAlignment.Center; txt_datadocumento_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_datadocumento = new TextBlock(); txt_datadocumento.FontSize = 12; txt_datadocumento.Height = 15; txt_datadocumento.FontWeight = FontWeights.Normal; txt_datadocumento.Text = Txt_DataDocumento.Text; txt_datadocumento.HorizontalAlignment = HorizontalAlignment.Center; txt_datadocumento.VerticalAlignment = VerticalAlignment.Bottom; TextBlock txt_numero_documento_title = new TextBlock(); txt_numero_documento_title.FontSize = 12; txt_numero_documento_title.Height = 17; txt_numero_documento_title.FontWeight = FontWeights.Normal; txt_numero_documento_title.Text = "N. Documento"; txt_numero_documento_title.HorizontalAlignment = HorizontalAlignment.Center; txt_numero_documento_title.VerticalAlignment = VerticalAlignment.Bottom; TextBlock txt_numero_documento = new TextBlock(); txt_numero_documento.FontSize = 12; txt_numero_documento.Height = 17; txt_numero_documento.FontWeight = FontWeights.Normal; txt_numero_documento.Text = Txt_NumeroDocumento.Text; txt_numero_documento.HorizontalAlignment = HorizontalAlignment.Center; txt_numero_documento.VerticalAlignment = VerticalAlignment.Bottom; myBorder217.CornerRadius = new CornerRadius(_radius, 0,0,0); myBorder217.Child = txt_codicecliente_title; myBorder219.Child = txt_codicecliente; myBorder217.HorizontalAlignment = HorizontalAlignment.Center; myBorder219.HorizontalAlignment = HorizontalAlignment.Center; myBorder217.Width = 100; myBorder219.Width = 100; myBorder220.Child = txt_codicefiscale_title; myBorder220.HorizontalAlignment = HorizontalAlignment.Center; myBorder221.Child = txt_codicefiscale; myBorder221.HorizontalAlignment = HorizontalAlignment.Center; myBorder220.Width = 200; myBorder221.Width = 200; myBorder222.Child = txt_partitaiva1_title; myBorder222.HorizontalAlignment = HorizontalAlignment.Center; myBorder223.Child = partitaiva1; myBorder223.HorizontalAlignment = HorizontalAlignment.Center; myBorder222.Width = 160; myBorder223.Width = 160; myBorder224.Child = txt_datadocumento_title; myBorder224.HorizontalAlignment = HorizontalAlignment.Center; myBorder225.Child = txt_datadocumento; myBorder225.HorizontalAlignment = HorizontalAlignment.Center; myBorder224.Width = 130; myBorder225.Width = 130; myBorder226.CornerRadius = new CornerRadius(0, _radius, 0, 0); myBorder226.Child = txt_numero_documento_title; myBorder226.HorizontalAlignment = HorizontalAlignment.Left; myBorder227.Child = txt_numero_documento; myBorder227.HorizontalAlignment = HorizontalAlignment.Left; myBorder226.Width = 100; myBorder227.Width = 100; StackPanel stackPanel0 = new StackPanel(); stackPanel0.Orientation = Orientation.Vertical; //stackPanel0.Height = 34; stackPanel0.Children.Add(myBorder217); stackPanel0.Children.Add(myBorder219); StackPanel stackPanel01 = new StackPanel(); stackPanel01.Orientation = Orientation.Vertical; //stackPanel01.Height = 34; stackPanel01.Children.Add(myBorder220); stackPanel01.Children.Add(myBorder221); StackPanel stackPanel02 = new StackPanel(); stackPanel02.Orientation = Orientation.Vertical; //stackPanel02.Height = 34; stackPanel02.Children.Add(myBorder222); stackPanel02.Children.Add(myBorder223); StackPanel stackPanel03 = new StackPanel(); stackPanel03.Orientation = Orientation.Vertical; //stackPanel03.Height = 34; stackPanel03.Children.Add(myBorder224); stackPanel03.Children.Add(myBorder225); StackPanel stackPanel04 = new StackPanel(); stackPanel04.Orientation = Orientation.Vertical; //stackPanel04.Height = 34; stackPanel04.Children.Add(myBorder226); stackPanel04.Children.Add(myBorder227); StackPanel stackPanel1 = new StackPanel(); stackPanel1.Orientation = Orientation.Horizontal; //stackPanel1.Height = 34; stackPanel1.Children.Add(stackPanel0); stackPanel1.Children.Add(stackPanel01); stackPanel1.Children.Add(stackPanel02); stackPanel1.Children.Add(stackPanel03); stackPanel1.Children.Add(stackPanel04); #endregion #region CENTER HEADER RIGA 2 TextBlock txt_telefono_title = new TextBlock(); txt_telefono_title.FontSize = 12; txt_telefono_title.Height = 17; txt_telefono_title.FontWeight = FontWeights.Normal; txt_telefono_title.Text = "Telefono"; txt_telefono_title.HorizontalAlignment = HorizontalAlignment.Center; txt_telefono_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_telefono = new TextBlock(); txt_telefono.FontSize = 12; txt_telefono.Height = 17; txt_telefono.FontWeight = FontWeights.Normal; txt_telefono.Text = ((Customer)CB_Destinatario.SelectedItem).Telefono; txt_telefono.HorizontalAlignment = HorizontalAlignment.Center; txt_telefono.VerticalAlignment = VerticalAlignment.Top; myBorder228.Child = txt_telefono_title; myBorder228.Width = 100; myBorder228.HorizontalAlignment = HorizontalAlignment.Center; myBorder229.Child = txt_telefono; myBorder229.HorizontalAlignment = HorizontalAlignment.Center; myBorder229.Width = 100; myBorder229.CornerRadius = new CornerRadius(0, 0, 0, _radius); StackPanel stackPanel05 = new StackPanel(); stackPanel05.Orientation = Orientation.Vertical; stackPanel05.Children.Add(myBorder228); stackPanel05.Children.Add(myBorder229); TextBlock txt_pagamento_title = new TextBlock(); txt_pagamento_title.FontSize = 12; txt_pagamento_title.Height = 17; txt_pagamento_title.FontWeight = FontWeights.Normal; txt_pagamento_title.Text = "Pagamento"; txt_pagamento_title.HorizontalAlignment = HorizontalAlignment.Center; txt_pagamento_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_pagamento = new TextBlock(); txt_pagamento.FontSize = 12; txt_pagamento.Height = 17; txt_pagamento.FontWeight = FontWeights.Normal; txt_pagamento.Text = ((Pagamenti)CB_Pagamenti.SelectedItem).Description; txt_pagamento.HorizontalAlignment = HorizontalAlignment.Center; txt_pagamento.VerticalAlignment = VerticalAlignment.Top; myBorder230.Child = txt_pagamento_title; myBorder230.Width = 300; myBorder230.HorizontalAlignment = HorizontalAlignment.Center; myBorder231.Child = txt_pagamento; myBorder231.HorizontalAlignment = HorizontalAlignment.Center; myBorder231.Width = 300; StackPanel stackPanel06 = new StackPanel(); stackPanel06.Orientation = Orientation.Vertical; stackPanel06.Children.Add(myBorder230); stackPanel06.Children.Add(myBorder231); TextBlock txt_causaletrasporto_title = new TextBlock(); txt_causaletrasporto_title.FontSize = 12; txt_causaletrasporto_title.Height = 17; txt_causaletrasporto_title.FontWeight = FontWeights.Normal; txt_causaletrasporto_title.Text = "Causale del trasporto"; txt_causaletrasporto_title.HorizontalAlignment = HorizontalAlignment.Center; txt_causaletrasporto_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_causaletrasporto = new TextBlock(); txt_causaletrasporto.FontSize = 12; txt_causaletrasporto.Height = 17; txt_causaletrasporto.FontWeight = FontWeights.Normal; txt_causaletrasporto.Text = ((CausaleTrasporto)CB_CausaleTrasporto.SelectedItem).Description; txt_causaletrasporto.HorizontalAlignment = HorizontalAlignment.Center; txt_causaletrasporto.VerticalAlignment = VerticalAlignment.Top; myBorder232.Child = txt_causaletrasporto_title; myBorder232.Width = 190; myBorder232.HorizontalAlignment = HorizontalAlignment.Center; myBorder233.Child = txt_causaletrasporto; myBorder233.HorizontalAlignment = HorizontalAlignment.Center; myBorder233.Width = 190; StackPanel stackPanel07 = new StackPanel(); stackPanel07.Orientation = Orientation.Vertical; stackPanel07.Children.Add(myBorder232); stackPanel07.Children.Add(myBorder233); if (onepage == true) tot = 1; else tot = (ddts.Count / split_pages); //txt_countpage.Text = count.ToString() + "/" + tot.ToString(); //txt_countpage.HorizontalAlignment = HorizontalAlignment.Right; TextBlock txt_pagina_title = new TextBlock(); txt_pagina_title.FontSize = 12; txt_pagina_title.Height = 17; txt_pagina_title.FontWeight = FontWeights.Normal; txt_pagina_title.Text = "Pag."; txt_pagina_title.HorizontalAlignment = HorizontalAlignment.Center; txt_pagina_title.VerticalAlignment = VerticalAlignment.Top; TextBlock txt_pagina = new TextBlock(); txt_pagina.FontSize = 12; txt_pagina.Height = 17; txt_pagina.FontWeight = FontWeights.Normal; txt_pagina.Text = count.ToString() + "/" + tot.ToString(); txt_pagina.HorizontalAlignment = HorizontalAlignment.Center; txt_pagina.VerticalAlignment = VerticalAlignment.Top; myBorder234.Child = txt_pagina_title; myBorder234.Width = 100; myBorder234.HorizontalAlignment = HorizontalAlignment.Center; myBorder235.Child = txt_pagina; myBorder235.HorizontalAlignment = HorizontalAlignment.Center; myBorder235.Width = 100; myBorder235.CornerRadius = new CornerRadius(0, 0, _radius, 0); StackPanel stackPanel08 = new StackPanel(); stackPanel08.Orientation = Orientation.Vertical; stackPanel08.Children.Add(myBorder234); stackPanel08.Children.Add(myBorder235); StackPanel stackPanel_container_riga2 = new StackPanel(); stackPanel_container_riga2.Orientation = Orientation.Horizontal; stackPanel_container_riga2.Children.Add(stackPanel05); stackPanel_container_riga2.Children.Add(stackPanel06); stackPanel_container_riga2.Children.Add(stackPanel07); stackPanel_container_riga2.Children.Add(stackPanel08); #endregion TextBlock txt_title = new TextBlock(); txt_title.FontSize = 12; txt_title.FontWeight = FontWeights.Bold; txt_title.Text = "DOCUMENTO DI TRASPORTO"; txt_title.HorizontalAlignment = HorizontalAlignment.Right; myBorder2.Child = txt_title; myBorder4.Child = DPR; myBorder6.Child = txt_destinazione_title; myBorder8.Child = txt_destinazione_ragionesociale; myBorder10.Child = txt_concat1; myBorder12.Child = txt_concat2; myBorder16.Child = txt_destinatario_title; myBorder18.Child = txt_destinatario_ragionesociale; myBorder20.Child = txt_destinatario_concat3; myBorder212.Child = txt_destinatario_concat4; myBorder1.Child = bt; myBorder11.Child = txt_cedente_title; myBorder13.Child = txt_cedente_sede; myBorder15.Child = txt_concat5; myBorder17.Child = txt_concat6; myBorder19.Child = txt_cedente_partitaiva; myBorder211.Child = txt_concat7; myBorder213.Child = txt_concat8; Grid.SetRow(myBorder1, 0); Grid.SetColumn(myBorder1, 0); Grid.SetRowSpan(myBorder1, 4); Grid.SetRow(myBorder2, 0); Grid.SetColumn(myBorder2, 2); Grid.SetRow(myBorder3, 1); Grid.SetColumn(myBorder3, 0); Grid.SetRow(myBorder4, 1); Grid.SetColumn(myBorder4, 2); ////Grid.SetRowSpan(myBorder3, 3); Grid.SetRow(myBorder5, 2); Grid.SetColumn(myBorder5, 0); Grid.SetRow(myBorder6, 2); Grid.SetColumn(myBorder6, 2); Grid.SetRow(myBorder7, 3); Grid.SetColumn(myBorder7, 0); Grid.SetRow(myBorder8, 3); Grid.SetColumn(myBorder8, 2); Grid.SetRowSpan(myBorder8, 3); Grid.SetRow(myBorder9, 4); Grid.SetColumn(myBorder9, 0); Grid.SetRow(myBorder10, 4); Grid.SetColumn(myBorder10, 2); Grid.SetRow(myBorder11, 5); Grid.SetColumn(myBorder11, 0); Grid.SetRow(myBorder12, 5); Grid.SetColumn(myBorder12, 2); Grid.SetRow(myBorder13, 6); Grid.SetColumn(myBorder13, 0); Grid.SetRow(myBorder14, 6); Grid.SetColumn(myBorder14, 2); Grid.SetRow(myBorder15, 7); Grid.SetColumn(myBorder15, 0); Grid.SetRow(myBorder16, 7); Grid.SetColumn(myBorder16, 2); Grid.SetRow(myBorder17, 8); Grid.SetColumn(myBorder17, 0); Grid.SetRow(myBorder18, 8); Grid.SetColumn(myBorder18, 2); Grid.SetRow(myBorder19, 9); Grid.SetColumn(myBorder19, 0); Grid.SetRow(myBorder20, 9); Grid.SetColumn(myBorder20, 2); Grid.SetRow(myBorder211, 10); Grid.SetColumn(myBorder211, 0); Grid.SetRow(myBorder212, 10); Grid.SetColumn(myBorder212, 2); ; Grid.SetRow(myBorder213, 11); Grid.SetColumn(myBorder213, 0); Grid.SetRow(myBorder214, 11); Grid.SetColumn(myBorder214, 2); Grid.SetRow(myBorder215, 12); Grid.SetColumn(myBorder215, 0); Grid.SetRow(myBorder216, 12); Grid.SetColumn(myBorder216, 2); Grid.SetRow(stackPanel1, 13); Grid.SetColumn(stackPanel1, 0); Grid.SetColumnSpan(stackPanel1, 3); //Grid.SetRow(myBorder218, 13); //Grid.SetColumn(myBorder218, 2); Grid.SetRow(stackPanel_container_riga2, 15); Grid.SetColumn(stackPanel_container_riga2, 0); Grid.SetColumnSpan(stackPanel_container_riga2, 3); //Grid.SetRow(myBorder220, 14); //Grid.SetColumn(myBorder220, 2); //Grid.SetRow(myBorder221, 15); //Grid.SetColumn(myBorder221, 0); //Grid.SetRow(myBorder222, 15); //Grid.SetColumn(myBorder222, 2); //Grid.SetRow(myBorder223, 16); //Grid.SetColumn(myBorder223, 0); //Grid.SetRow(myBorder224, 16); //Grid.SetColumn(myBorder224, 2); Grid.SetRow(myBorder_Trasparent, 2); Grid.SetColumn(myBorder_Trasparent, 2); Grid.SetRowSpan(myBorder_Trasparent, 4); Grid.SetRow(myBorder_Trasparent2, 7); Grid.SetColumn(myBorder_Trasparent2, 2); Grid.SetRowSpan(myBorder_Trasparent2, 4); //Grid.SetRow(myBorder_Trasparent3, 13); //Grid.SetColumn(myBorder_Trasparent3, 0); //Grid.SetRowSpan(myBorder_Trasparent3, 2); //Grid.SetColumnSpan(myBorder_Trasparent3, 3); //Grid.SetColumnSpan(txt0, 3); gridHeader.Children.Add(myBorder_Trasparent); gridHeader.Children.Add(myBorder_Trasparent2); //gridHeader.Children.Add(myBorder_Trasparent3); ......................................

    ........................... }


    non sono riuscito ad inserire tutto il codice completo



    fabio miceli

    mercoledì 29 aprile 2020 17:21
  • ...

    Quando mando in stampa su stampante formato solo A4 nessun problema, stampa correttamente rispettando i margini, così anche se mando in stampa su pdf.

    Ma se stampo su una stampante formato A3, con carta A4 e settando le proprietà  della stampante su verticale

    il layout lo stampa tutto spostato tutto a sinistra della pagina, non rispettando i margini verticali; in sostanza il margine lo mette tutto a destra della pagina.

    potresti aiutarmi a capire dove sbaglio ?

    ...


    fabio miceli

    Prova stampando qualcosa nella stessa situazione (A3/A4) con un altro programma, per vedere se dipende dalle impostazioni della finestra di dialogo o dal tuo programma.

    giovedì 30 aprile 2020 05:54
  • Ciao BlueLed,

    Il PDF lo crea e lo stampa correttamente,con altri tipi di documenti (Word Excel etc )  stampa in modo corretto.

    Quindi penso che il problema sia sul codice che manda in stampa sulla stampante, solo che non riesco a capire come settare i margini in modo che riconosca che sono quelli della stampante A3, o eventualmente A4


    fabio miceli

    giovedì 30 aprile 2020 17:42
  • Può darsi che le dimensioni della pagina vengano considerate come A3 e che vengano ridotte per adattarle ad un A4.
    giovedì 30 aprile 2020 18:13
  • Ma su altri documenti non lo riduce 

    come mai ?


    fabio miceli

    giovedì 30 aprile 2020 18:55
  • Sarà mica perché hai impostato la direzione verticale?
    giovedì 30 aprile 2020 21:26
  • Se non imposto la direzione verticale mi stampa il layout ruotato di 90°, 

    su carta A4 e proprietà di stampa in verticale


    fabio miceli

    sabato 2 maggio 2020 14:51
  • Confronta i valori di PrintableAreaHeight, PrintableAreaWidth con le proprietà di PrintTicket.PageMediaSize: Width, Height, PageMediaSizeName.


    • Modificato BlueLed sabato 2 maggio 2020 16:29
    sabato 2 maggio 2020 16:28
  • Se stampo in questo modo mi riduce più o memo del 30% sia Width che Height dell layout,

    ciò significa che di cui parlavi (da confrontare) sono diverse

                if (FurnirurePrintList.Count > 0) { 
    
                FlowDocument fd = PrintDDT();
                PrintdDDT = new System.Windows.Controls.PrintDialog();
    
                 ScrollViewer.SetVerticalScrollBarVisibility(lv_Elements, ScrollBarVisibility.Hidden);
    
                    if ((bool)PrintdDDT.ShowDialog().GetValueOrDefault())
                    {
                        
                        // Recupero il server locale
                        PrintServer server = new LocalPrintServer();
                        // Riferimento alla stampante virtuale XPS
                        //PrintQueue printQueue = new PrintQueue(server, "Microsoft XPS Document Writer");
                        PrintQueue printQueue = new PrintQueue(server, "Canon series (Copia 2)");
    
                        // Parto dalle impostazioni predefinite
                        PrintTicket printTicket = printQueue.DefaultPrintTicket.Clone();
                        // Pagina orizzontale
                        printTicket.PageOrientation = PageOrientation.Portrait;
                        printTicket.PageMediaSize = new PageMediaSize(printTicket.PageMediaSize.Height.Value, printTicket.PageMediaSize.Width.Value);
                        PrintdDDT.PrintTicket = printTicket;
                       
    
                     
    
    
                        //PrintdDDT.PrintTicket.PageOrientation = PageOrientation.Portrait;
    
                        //fd.PageHeight = PrintdDDT.PrintableAreaHeight;
                        //fd.PageWidth = PrintdDDT.PrintableAreaWidth;
                        //fd.PagePadding = new Thickness(30);
    
                        //fd.ColumnGap = 25;
                        //fd.ColumnWidth = PrintdDDT.PrintableAreaWidth;
    
    
    
                        fd.ColumnWidth = PrintdDDT.PrintableAreaWidth;
    
    
                        IDocumentPaginatorSource dps = fd;
                        PrintdDDT.PrintDocument(dps.DocumentPaginator, "Print DDT");
    
                     }
    
                }
                else
                    MessageBox.Show("Inserire gli elementi nella griglia");


    fabio miceli


    sabato 2 maggio 2020 16:51
  • Ma quali sono questi cinque valori, compreso il nome del formato del foglio?
    sabato 2 maggio 2020 16:58
  • ---------------------------

    ---------------------------
    printTicket.PageMediaSize.Width.Value:793,700787401575 -  printTicket.PageMediaSize.Width.Value: 1122,51968503937
    ---------------------------

    ---------------------------

     

    ---------------------------
     PrintdDDT.PrintableAreaHeight: 793,59874015748 -  PrintdDDT.PrintableAreaWidth: 1122,51212598425
    ---------------------------

    il nome formato del foglio e A4 (intendevi questo) ?

     

    fabio miceli

    sabato 2 maggio 2020 17:17
  • I valori che hai riportato sono praticamente uguali, quando li hai visualizzati? Dopo che li hai copiati? Li dovresti visualizzare prima.

    Dici A4 perché lo hai impostato tu o perché l'hai letto dalla proprietà PageMediaSizeName? Comunque i valori che mostri dovrebbero corrispondere ad un A1.

    sabato 2 maggio 2020 17:58
  • Li ho visualizzati su un MessageBox prima di averli copiati

    su printTicket  non trovo la proprietà  PageMediaSizeName,  ma neanche su PrintDialog


    fabio miceli

    sabato 2 maggio 2020 18:20
  • Li ho visualizzati su un MessageBox prima di averli copiati

    su printTicket  non trovo la proprietà  PageMediaSizeName,  ma neanche su PrintDialog


    fabio miceli

    Non c'è printTicket.PageMediaSize.PageMediaSizeName?
    sabato 2 maggio 2020 18:26
  • Si c'è ma se non aggiungo ToString mi da erroresulla riga,

    printTicket.PageMediaSize.PageMediaSizeName.ToString()

    e comunque non da nessun valore....nullo !


    fabio miceli

    sabato 2 maggio 2020 18:39
  • Nella finestra delle impostazioni, il formato della carta lo scegli ? Oppure ti limiti a premere soltanto il pulsante per stampare ? Perché è come se, per default, stia utilizzando un A1 che poi adatta alla carta A4.
    sabato 2 maggio 2020 21:08
  • Non solo imposto A4 Verticale, ma imposto anche la stampante come predefinita

    fabio miceli

    domenica 3 maggio 2020 11:25
  • Noto che nell'ultima versione non imposti più fd.PageWidth, fd.PageHeight, etc, etc. Prova a dargli le dimensioni di un A4.
    • Modificato BlueLed domenica 3 maggio 2020 12:02
    domenica 3 maggio 2020 12:02
  • Sarebbe 210X297 ?

    se così mi da tre pagine  piccoline--- Header Lista e Footer

                        PrintdDDT.PrintTicket.PageOrientation = PageOrientation.Portrait;

                        fd.PageHeight = 297;// PrintdDDT.PrintableAreaHeight;
                        fd.PageWidth = 210;// PrintdDDT.PrintableAreaWidth;
                        fd.PagePadding = new Thickness(15);

                        fd.ColumnGap = 0;
                        fd.ColumnWidth = 210;// PrintdDDT.PrintableAreaWidth;


    fabio miceli


    domenica 3 maggio 2020 13:59
  • Le misure dovrebbero essere in pixel e i valori dipendono dai DPI della stampante.
    • Modificato BlueLed domenica 3 maggio 2020 15:04
    domenica 3 maggio 2020 15:03
  • Stampando in questo modo il pdf lo crea perfettamente inquadrato alla pagina...

                        fd.PageHeight = 1050;// PrintdDDT.PrintableAreaHeight;
                        fd.PageWidth = 720;// PrintdDDT.PrintableAreaWidth;
                        fd.PagePadding = new Thickness(15);

                        fd.ColumnGap = 0;
                        fd.ColumnWidth = 720;// PrintdDDT.PrintableAreaWidth;

    Ho provato con i valori 595×842 ma mi stampa sempre su tre pagine come la foto sopra,la larghezza più o meno corretta

    purtroppo devo aspettare a domattina per testare su stampante perchè non sono più in ufficio


    fabio miceli

    domenica 3 maggio 2020 16:27
  • Ciao BlueLed,

    ho ripreso a lavorare con  il codice per la stampa, ma ancora non riesco a sistemare il layout per la stampa:

    in questa maniera  riesco ad avere la stampa più o meno centrata in With, ma in Height mi stampa soltanto la prima riga della pagina...tutto il resto non lo stampa.

     fd.PageHeight = 1050;// PrintdDDT.PrintableAreaHeight;
                        fd.PageWidth = 730;// PrintdDDT.PrintableAreaWidth;
                        fd.PagePadding = new Thickness(15);

    come posso fare ?

    Ripeto: il problema si verifica solamente con la stampante A3 con carta A4 (impostazioni su verticale)


    fabio miceli

    mercoledì 13 maggio 2020 17:18
  • Per vedere se dipende dal tuo codice, fai stampare un FlowDocument più semplice, una sola pagina con un rettangolo (vuoto) delle dimensioni del foglio meno un pò di margine.
    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:44
    giovedì 14 maggio 2020 12:51
  • Ciao

    ho settato la proprietà height in questo modo:

    fd.PageHeight= PrintdDDT.PrintableAreaHeight;

    adesso mi da la pagina intera.

    mi resta solamente centrare bene sia in orizzontale che in verticale

    non ho capito perchè quella stampante A3 modifica quelle porprietà, penso che probabilmente ha un suo sistema di settaggio ignorando le  mie  impostazioni


    fabio miceli

    venerdì 15 maggio 2020 14:57
  • non trovo le proprietà per settare il margine superiore

    fabio miceli

    venerdì 15 maggio 2020 15:01
  • come mai se imposto questi margini di stampa su carta:

     fd.PagePadding = new Thickness(50, 40, 0, 0);

    su pdf azzera il margine destro?


    fabio miceli

    venerdì 15 maggio 2020 15:36
  • come mai se imposto questi margini di stampa su carta:

     fd.PagePadding = new Thickness(50, 40, 0, 0);

    su pdf azzera il margine destro?


    fabio miceli

    Probabilmente perché il terzo parametro, Right, è zero.
    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:44
    venerdì 15 maggio 2020 15:52
  • fd.PagePadding = new Thickness(50, 40, 25, 0);

    penso proprio che si quello 

    sulla mia stampante a casa A4  lo centra perfettamente

    domattina provo subito sulla A3 in ufficio.....speriamo che si concluda...uffaaa :)


    fabio miceli

    venerdì 15 maggio 2020 17:20
  • ma come mai se imposto left  50 e right a 25 lo centra ??

    non dovrebbe darlo decentrato ?

    se io non imposto per niente il PagePadding non lo centra automaticamente sulla pagina ?


    fabio miceli

    venerdì 15 maggio 2020 17:30
  • ma come mai se imposto left  50 e right a 25 lo centra ??

    non dovrebbe darlo decentrato ?

    se io non imposto per niente il PagePadding non lo centra automaticamente sulla pagina ?


    fabio miceli

    Ma stai parlando del rettangolo di prova che ti avevo consigliato? Considera che gli hai dato un'ampiezza approssimativa, mi pare fosse 730. Quei numeri avevano lo scopo di capire cosa stesse succedendo, ma alla fine dovrai farti tornare i conti con i valori del PrintDialog, altrimenti dovrai modificare il programma per ogni stampante che usi.

    • Contrassegnato come risposta Fabio Miceli domenica 17 maggio 2020 11:43
    venerdì 15 maggio 2020 18:03
  • Problema risolto.

    Grazie infinite BlueLed

    alla prossima


    fabio miceli

    domenica 17 maggio 2020 11:44