В этой немецкой статье говорится, что она работает без проблем. Автор описывает, что он менял коэффициент масштабирования в соответствии с системными предпочтениями и что масштабирование было установлено в масштабе всей системы для всех используемых шрифтов.
Неудобство было размером с мышеловкой, которое было исправлено в /etc/X11/Xresources/x11-common изменением Xcursor*size: 48.
Он также описывает проблему, когда система переходит в режим энергосбережения, что она не возвращается, но это, кажется, немецкая статья
В офисе libre, gimp и firefox автор изменил масштаб в программе до подходящего размера масштабирования.
Anwser от Bruno прав, но это не сработало для меня полностью, поскольку XMLWorkerHelper.parsetoElementsList не смог разобрать некоторые системные шрифты, с другой стороны, XMLWorkerHelper.getInstance (). parseXHtml (writer, document, is); } смог правильно проанализировать системные шрифты, поэтому мне нужно спуститься по маршруту обработчиков элементов, которые обработали здесь код в C #
/// <summary>
/// returns pdf in bytes.
/// </summary>
/// <param name="contentsHtml">contents.</param>
/// <param name="headerHtml">header contents.</param>
/// <param name="footerHtml">footer contents.</param>
/// <returns></returns>
public Byte[] GetPDF(string contentsHtml, string headerHtml, string footerHtml)
{
// Create a byte array that will eventually hold our final PDF
Byte[] bytes;
// Boilerplate iTextSharp setup here
// Create a stream that we can write to, in this case a MemoryStream
using (var ms = new MemoryStream())
{
// Create an iTextSharp Document which is an abstraction of a PDF but **NOT** a PDF
using (var document = new Document(PageSize.A4, 40, 40, 120, 120))
{
// Create a writer that's bound to our PDF abstraction and our stream
using (var writer = PdfWriter.GetInstance(document, ms))
{
// Open the document for writing
document.Open();
var headerElements = new HtmlElementHandler();
var footerElements = new HtmlElementHandler();
XMLWorkerHelper.GetInstance().ParseXHtml(headerElements, new StringReader(headerHtml));
XMLWorkerHelper.GetInstance().ParseXHtml(footerElements, new StringReader(footerHtml));
writer.PageEvent = new HeaderFooter(headerElements.GetElements(), footerElements.GetElements());
// Read your html by database or file here and store it into finalHtml e.g. a string
// XMLWorker also reads from a TextReader and not directly from a string
using (var srHtml = new StringReader(contentsHtml))
{
// Parse the HTML
iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
}
document.Close();
}
}
// After all of the PDF "stuff" above is done and closed but **before** we
// close the MemoryStream, grab all of the active bytes from the stream
bytes = ms.ToArray();
}
return bytes;
}
}
странице событий и элементов кода обработчика здесь
[F2]