Я использую библиотеку TheArtOfDev.HtmlRenderer для преобразования html в изображение
а затем отправить его на принтер.
HTML-код, который мне нужно преобразовать, содержит вертикальный текст и прямоугольник с закругленными краями, которые при использовании библиотеки преобразуют изображение как добавленное.
спасибо за помощь.
изображение результата:
https://imgur.com/a/jZz2uvn
HTML:
<html>
<head>
<style>
#rcorners2 {
border-radius: 25px;
border: 2px solid black;
padding: 20px;
width: 200px;
height: 150px;
}
.rotate {
margin-top: 20%;
font-weight: bolder;
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-o-transform: rotate(180deg);
writing-mode: tb-rl;
-ms-writing-mode: bt-rl;
}
</style>
</head>
<body>
<div id="rcorners2">
<label style="" class="rotate" >Limited</label>
</div>
</body>
</html>
C #:
PrintDocument pd = new PrintDocument ();
pd.PrinterSettings.PrinterName = "printer";
Image img = HtmlRender.RenderToImage(html);//, width, height
img.Save(@"tmp\Test1.png", ImageFormat.Png);
pd.PrintPage +=
(object o, PrintPageEventArgs e) =>
{
img.Save(@"tmp\Test1.png", ImageFormat.Png);
img = System.Drawing.Image.FromFile(@"tmp\Test1.png");
if (isFullBound)
{
e.Graphics.DrawImage(img, e.PageBounds);
}
else
{
Point loc = new Point(locationHeight, locationWidth);
e.Graphics.DrawImage(img, loc);
}
//e.Graphics.DrawImage(img,e.PageBounds);
};
pd.PrinterSettings.Copies = copies;
pd.Print();