开发者

WPF Printing FlowDocument not centering

开发者 https://www.devze.com 2023-01-26 09:26 出处:网络
I want to print a page from some text I have with a small header. I wanted all the text to be centered on the page but I\'m not sure how to do it..

I want to print a page from some text I have with a small header. I wanted all the text to be centered on the page but I'm not sure how to do it..

Here is my code.. t is of type track which is just an object that holds information like artist name, album name, song title, and lyrics.

 PrintDialog dialog = new PrintDialog();
            if (dialog.ShowDialog() != true)
            { return; }
            FlowDocument doc = new FlowDocument();
            Section sec = new Section();
            Paragraph header = new Paragraph();
            Paragraph body = new Paragraph();
            Bold boldSong = new Bold();
            boldSong.Inlines.Add(new Run(t.Song));
            header.Inlines.Add(boldSong);
            header.Inlines.Add(new LineBreak());
            Bold boldArtist = new Bold();
            if (!string.IsNullOrWhiteSpace(t.Artist))
            {
                boldA开发者_开发知识库rtist.Inlines.Add(new Run(t.Artist));
                header.Inlines.Add(boldArtist);
                header.Inlines.Add(new LineBreak());
            }
            Bold boldAlbum = new Bold();
            if (!string.IsNullOrWhiteSpace(t.Album))
            {
                boldAlbum.Inlines.Add(new Run(t.Album));
                header.Inlines.Add(boldAlbum);
                header.Inlines.Add(new LineBreak());
            }
            header.TextAlignment = TextAlignment.Center;
            body.Inlines.Add(t.iTunesFileTrack.Lyrics);
            body.TextAlignment = TextAlignment.Center;
            doc.Blocks.Add(header);
            doc.Blocks.Add(body);
            doc.Name = "FlowDoc";
            IDocumentPaginatorSource idpSource = doc;
            DocumentPaginator holder = idpSource.DocumentPaginator;
            holder.PageSize = new Size(dialog.PrintableAreaWidth,
        dialog.PrintableAreaHeight);
            dialog.PrintDocument(holder, "Lyrics");

The page prints just fine except for the fact that the whole thing clings to the left of the document when printed... I know there is some property I'm not setting correctly or not setting at all..


increase the size of the ColumnWidth property or just make it '999999'

0

精彩评论

暂无评论...
验证码 换一张
取 消