如何仅在PDFsharp中加粗某些文本?

时间:2018-08-25 02:52:26

标签: .net pdfsharp

我正在VB.NET上进行编程,并使用PDFsharp库根据程序的需要创建PDF页面。现在,我只需要将文本的某些部分加粗,但是我只知道如何一次将其整个部分加粗。我该怎么做?

当前,我用于渲染单词的代码如下:

Dim graph As XGraphics = XGraphics.FromPdfPage(pdfPage)
graph.DrawString("Sample Text", New XFont("Arial", 12, FontStyle.Bold), New SolidBrush(Color.Black), New RectangleF(X, Y, 700, 30), New XStringFormat())

2 个答案:

答案 0 :(得分:1)

在上面的示例中,如果您希望将“示例文本”用粗体字写成“文本”,请执行以下操作;

  • 包含MigraDoc + PDFsharp NuGet软件包,如先前的答复所述。
  • 用以下代码替换graph.DrawString行(尽管这是C#,很抱歉),以使用MigraDoc Paragraph实例和现有的XGraphics {{ 1}}来自PDFsharp的实例。

    graph

答案 1 :(得分:0)

为常规部分调用public static ConnectivityReceiverListener connectivityReceiverListener; public NetworkChangeReceiver() { super(); } @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); if (connectivityReceiverListener != null) { connectivityReceiverListener.onNetworkConnectionChanged(isConnected); } } public static boolean isConnected() { ConnectivityManager cm = (ConnectivityManager) Application.getInstance().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); return activeNetwork != null && activeNetwork.isConnectedOrConnecting(); } public interface ConnectivityReceiverListener { void onNetworkConnectionChanged(boolean isConnected); } ,然后为粗体部分调用DrawString,然后为下一个常规部分调用DrawString。始终给每个字符串正确的位置。

您可以查看DrawString类。它实现了自动换行符,但尚不支持混合使用不同的字体样式。它可以帮助您入门。

专业提示:您可以在一个NuGet软件包中获得MigraDoc和PDFsharp。 MigraDoc允许在单个段落中混合,自动处理换行符和分页符,还带来其他好处,例如页眉和页脚。