【问题标题】:PDFsharp how to add checkboxes to documentPDFsharp如何将复选框添加到文档
【发布时间】:2017-10-19 00:02:41
【问题描述】:

我一直在寻找将复选框添加到 PDFsharp 文档的最佳方法。

到目前为止,我只能添加带有 Wingdings 字体的字符串 "\u00fd"。仅当使用 Acrobat Reader 打开 PDF 文档时,它才有效。但是如果 Chrome 或 IE 打开它,而不是一个复选框,它将显示一个不可读的字符。

PDFsharp 的任何想法或更好的替代方案(免费或开源)?

我对 PDF 文档的要求很简单,只需一两份报告。

PDFsharp Novice 提供的用于嵌入字体的链接。

画出复选框:

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode,
                                              PdfFontEmbedding.Always);

XFont prevCheckboxFont = new XFont("WingDings", 12, XFontStyle.Regular, options);

XRect prevCheckboxPos = new XRect(XUnit.FromInch(3.20), XUnit.FromInch(3.30),
                                  XUnit.FromInch(1.25), XUnit.FromInch(.10));
string prevCheckboxText = "\u00FE";
gfx.DrawString(prevCheckboxText, prevCheckboxFont, XBrushes.Black,
               prevCheckboxPos, XStringFormats.TopLeft);

【问题讨论】:

  • 如果您需要帮助来修复您的代码,请出示一些代码。
  • 看来您使用的不是最新版本(1.50),而是非常旧的版本(1.32 或更早版本)。它现在有效吗?如果没有,您会提供PDF吗?代码 sn -p 不显示绘制复选框的代码。
  • @PDFsharpNovice 我添加了绘制复选框的部分。它现在正在工作。 Chrome 和 IE 在我的笔记本电脑上显示了正确的复选框,但我需要运行更多测试并在服务器上运行它。我有最新的稳定版本 1.32.3057。这段代码看起来正确还是有更新的方法可以做到这一点?
  • @causita - 你能插入复选框吗?
  • @ncdreamy 是的,我使用了下面的答案

标签: c# pdf pdfsharp


【解决方案1】:

我们使用 Wingdings 在 PDF 中创建复选框,它们可以与 Adob​​e Reader、Firefox 和 Chrome 一起使用。

确保在 PDF 文件中嵌入字体。

对于旧版本 1.32 和更早的版本,您必须指定一个标志才能嵌入字体:

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode,
                                              PdfFontEmbedding.Always);
XFont font = new XFont("Times New Roman", 12, XFontStyle.Regular, options);

在当前版本(1.50 和更高版本)中始终嵌入字体,并且删除了该选项。

另请参阅:
http://www.pdfsharp.net/wiki/Unicode-sample.ashx
MigraDox C# Checkboxes - Wingdings Not Working

【讨论】:

  • 您(正确!)向 OP 索要一些代码。为什么您自己不提供您提供的链接中的代码,甚至不提供关键代码片段?
  • @mkl OP 甚至没有指明他们使用的版本 - 用法在 1.32 和 1.50 之间发生了变化。该链接转到官方项目站点,并且不太可能被破坏。我不喜欢创建无人维护的代码副本。我不喜欢在不知道真正原因的情况下根据猜测编写或复制代码。
  • “我不喜欢创建无人维护的代码副本。” - 总体上值得称赞的态度,但在这种情况下,这与堆栈溢出想要得到答案的方式相冲突: "Always quote the most relevant part of an important link"。话虽如此,“OP 甚至没有指出他们使用的版本 - 用法在 1.32 和 1.50 之间发生了变化。” - 在这种情况下,我要么假设最新版本,要么询问OP在回答之前要澄清。
  • 我使用的是最新版本。我将检查这 2 个链接并报告回来并放上我的代码。谢谢。
  • @PDFsharpNovice 太好了,这使答案成为真正的答案。
猜你喜欢
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-01-07
  • 2014-03-03
相关资源
最近更新 更多