我試圖打印RichTextBox的內容,包括裏面的Adorner圖層。 我使用此代碼打印用Adorner圖層打印RichTextBox內容的問題
double w = Editor.ExtentWidth; // Editor is the RichTextBox
double h = Editor.ExtentHeight;
LocalPrintServer ps = new LocalPrintServer();
PrintQueue pq = ps.DefaultPrintQueue;
XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(pq);
PrintTicket pt = pq.UserPrintTicket;
if (xpsdw != null)
{
pt.PageOrientation = PageOrientation.Portrait;
PageMediaSize pageMediaSize = new PageMediaSize(w, h);
pt.PageMediaSize = pageMediaSize;
xpsdw.Write(Editor);
}
我面臨的問題是,這種代碼只打印顯示在屏幕,而不是編輯器的全部內容上可見的內容。
EDIT 的圖片是裝飾器層,如果我打印使用上述方法,只打印畫面而不是整個文件上的可見部分。
編輯
我想單獨打印每一個頁面,但做了之後Editor.PageDown();
我不能強迫Editor.InvalidateVisual();
有沒有辦法,我可以做到這一點在我的方法是什麼?
昨天你不是問這個嗎? – LarsTech
@LarsTech這涵蓋了一個不同的問題。 – raym0nd
你有沒有試過調用xpsdw.Write(Editor.Document)? –