当前位置: 首页 > 知识库问答 >
问题:

无法用PDFSharp更改AcroForm字段的字体

司空丰
2023-03-14

我一直在使用PDFSharp来填充带有AcroForm字段的PDF。我可以使用以下代码设置表单字段的值:

    PdfTextField txtField = (PdfTextField)oldPDF.AcroForm.Fields["fieldname"];
    txtField.Value = new PdfString("my form value");

我遇到的问题是,当我试图更改将进入字段的文本的字体时。我能够访问字段的font属性,它允许我像这样设置它:

txtField.Font = new XFont("Courier New", 16, XFontStyle.Bold);

然而,当我打开保存的PDF时,它默认字体返回到不同的字体。我也试过使用其他字体,比如“Arial”或“Helvetica”,以及不同的大小,但似乎没有一种字体能坚持。

如果我用Foxit PhantomPDF手动编辑表单字段并那样更改字体,它将会坚持,但我想用代码来做。这可能吗?

共有1个答案

宋铭
2023-03-14

不确定这是否是正确的方法,但我可以通过访问AcroForm字段字典中的“/da”默认外观元素并修改它来更改字体。

   if(txtField.Elements.ContainsKey("/DA") == false)
      {
         txtField.Elements.Add("/DA", new PdfString("/CoBo 12 Tf 0 g"));
      }
   else
      {
         txtField.Elements["/DA"] = new PdfString("/CoBo 12 Tf 0 g");
      }

我觉得“font”属性是正确的方法,但我无法使该方法起作用。

 类似资料:
  • 问题内容: 我需要使用来向字段添加西里尔字母值的帮助。这是我到目前为止的内容: 当我的输入是拉丁字母时,它可以完美地工作。但是我也需要处理西里尔字母的输入。我该怎么做? ps这是我得到的异常:原因:java.lang.IllegalArgumentException:U + 043D(’afii10079’)在该字体Helvetica编码中不可用:WinAnsiEncoding 问题答案: 下面的

  • 我正在编写一个应用程序,它使用PDFbox库来填充PDF文件中的字段。 在其中一个字段中,我将文本设置为希伯来字母。 当我在Android设备上运行代码时,我会得到以下日志: 我试图在堆栈溢出中找到一些关于它的信息,但我找到的答案都与填充表单有关。它都与有关。 你能帮我解决这个错误并用PDFBox在表格中填写希伯来字母吗?

  • 我使用iText将数据填充到PDF中现有的AcroForm字段中。 我现在正在寻找将新的AcroForm字段添加到PDF的解决方案。iText是否可以做到这一点?如果是,我该如何做到这一点?

  • 我有两个实体具有@OneTomany(Entity1)&@ManyToOne(Entity2)双向关系。在@OneTomany关系中,我有@Cascading{Cascade.All}。但是当我在事务或方法中将具有@ManyToOne关系的实体的初始为false的boolean属性更改为true,然后又变回false时,它会导致数据库触发更新查询,将实体的boolean设置为false,这似乎是错

  • 问题内容: 我有一个传统的postgres db,它具有将日期列强制转换为字段(不要问)。我想更改表和列以包含实际日期。因为这有效: 我天真地认为这可能有效: 但事实并非如此。有无知的线索吗? 问题答案: 这 恰好 符合OP的要求。我们这里有一个简单的思想/错别字。 在手册中了解有关ALTER TABLE的更多信息 。 演示: 提示:您写的不是。