Вы можете импортировать шрифт непосредственно из Google, добавив это
@import url('https://fonts.googleapis.com/css?family=Roboto');
И используя его с этим font-family: 'Roboto', sans-serif;
Вы можете найти более подробную информацию здесь https://fonts.google.com/ образец / Roboto? selection.family = Roboto
На самом деле после бездельничания с "кучей" различных образцов, все из которых являются невероятно замысловатыми и требуют использования Устройств записи Документа, Контейнеров, Очередей печати и Билетов Печати, я нашел статью Eric Sinks приблизительно Печать в WPF
, упрощенный код является всего 10 строками долго
public void CreateMyWPFControlReport(MyWPFControlDataSource usefulData)
{
//Set up the WPF Control to be printed
MyWPFControl controlToPrint;
controlToPrint = new MyWPFControl();
controlToPrint.DataContext = usefulData;
FixedDocument fixedDoc = new FixedDocument();
PageContent pageContent = new PageContent();
FixedPage fixedPage = new FixedPage();
//Create first page of document
fixedPage.Children.Add(controlToPrint);
((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
fixedDoc.Pages.Add(pageContent);
//Create any other required pages here
//View the document
documentViewer1.Document = fixedDoc;
}
, Мой образец довольно упрощен, это не включает Калибровку Страницы и Ориентацию, которая содержит совершенно другой набор проблем, которые не работают, как Вы ожидали бы. И при этом это не содержит никого, сохраняют функциональность, поскольку MS, кажется, забыл включать кнопку Save со Средством просмотра документов.
Сохраняют Функциональность, относительно просто (и также из статьи Eric Sinks)
public void SaveCurrentDocument()
{
// Configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "MyReport"; // Default file name
dlg.DefaultExt = ".xps"; // Default file extension
dlg.Filter = "XPS Documents (.xps)|*.xps"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
FixedDocument doc = (FixedDocument)documentViewer1.Document;
XpsDocument xpsd = new XpsDocument(filename, FileAccess.ReadWrite);
System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
xw.Write(doc);
xpsd.Close();
}
}
, Таким образом, ответ Да, можно взять Существующий WPF (XAML) Управление, связать с данными его и превратить его в документ XPS - и не все что трудный.