Ошибка при использовании шрифта Times New Roman bold в pdfsharp - PullRequest
0 голосов
/ 28 июня 2018

Я использовал pdfSharp для вставки текста в файл PDF, но когда я использую шрифт Times New Roman bold, возникают некоторые проблемы.

Вот мой код:

using PdfSharp.Pdf;
using PdfSharp.Drawing;
PdfSharp.Pdf.PdfDocument pdf = new PdfSharp.Pdf.PdfDocument();
pdf.Info.Title = filePrint;
PdfSharp.Pdf.PdfPage pdfPage = pdf.AddPage();
pdfPage.Size = PdfSharp.PageSize.A4;
using (XGraphics graph = XGraphics.FromPdfPage(pdfPage))
{
     XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
     XFont fontBold = new XFont("Times New Roman", 10, XFontStyle.Bold, options);
     graph.DrawString("Đây là đoạn text bold", fontBold, XBrushes.Black, new XRect(75.6, 56, 30, 30), XStringFormats.TopLeft);
}

Тогда мой результат будет таким:

PDF file image

Пожалуйста, помогите мне найти решение этой ошибки.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать дополнительно MigraDoc.

После этой статьи: Можете ли вы попробовать это:

using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
                using (var document = new PdfDocument())
                {
                    PdfPage page = document.AddPage();
                    XGraphics graph = XGraphics.FromPdfPage(page);

                    graph.MUH = PdfFontEncoding.Unicode;
                    graph.MFEH = PdfFontEmbedding.Always;

                    // You always need a MigraDoc document for rendering.
                    Document doc = new Document();
                    Section section = doc.AddSection();

                    Font font = new Font("Times New Roman", 12);

                    foreach (var line in textFileLines)
                    {
                        Paragraph paragraph = section.AddParagraph();
                        paragraph.AddFormattedText(line, font);
                    }

                    //save pdf document
                    PdfDocumentRenderer renderer = new PdfDocumentRenderer();
                    renderer.Document = doc;
                    renderer.RenderDocument();
                    renderer.Save(output);
                }
...